backstack: have added the workspace flag

This commit is contained in:
Leon Mika 2022-08-14 09:20:24 +10:00
parent 6c5787b271
commit cc58db2d49
2 changed files with 15 additions and 8 deletions

View file

@ -28,6 +28,7 @@ func main() {
var flagTable = flag.String("t", "", "dynamodb table name") var flagTable = flag.String("t", "", "dynamodb table name")
var flagLocal = flag.String("local", "", "local endpoint") var flagLocal = flag.String("local", "", "local endpoint")
var flagDebug = flag.String("debug", "", "file to log debug messages") var flagDebug = flag.String("debug", "", "file to log debug messages")
var flagWorkspace = flag.String("w", "", "workspace file")
flag.Parse() flag.Parse()
ctx := context.Background() ctx := context.Background()
@ -37,11 +38,11 @@ func main() {
cli.Fatalf("cannot load AWS config: %v", err) cli.Fatalf("cannot load AWS config: %v", err)
} }
wsManager := workspaces.New(workspaces.MetaInfo{ closeFn := logging.EnableLogging(*flagDebug)
Command: "sqs-browse", defer closeFn()
})
//ws, err := wsManager.CreateTemp() wsManager := workspaces.New(workspaces.MetaInfo{Command: "dynamo-browse"})
ws, err := wsManager.Open("temp.workspace") ws, err := wsManager.OpenOrCreate(*flagWorkspace)
if err != nil { if err != nil {
cli.Fatalf("cannot create workspace: %v", ws) cli.Fatalf("cannot create workspace: %v", ws)
} }
@ -83,9 +84,6 @@ func main() {
p := tea.NewProgram(model, tea.WithAltScreen()) p := tea.NewProgram(model, tea.WithAltScreen())
closeFn := logging.EnableLogging(*flagDebug)
defer closeFn()
// Pre-determine if layout has dark background. This prevents calls for creating a list to hang. // Pre-determine if layout has dark background. This prevents calls for creating a list to hang.
if lipgloss.HasDarkBackground() { if lipgloss.HasDarkBackground() {
if colorScheme := osstyle.CurrentColorScheme(); colorScheme == osstyle.ColorSchemeLightMode { if colorScheme := osstyle.CurrentColorScheme(); colorScheme == osstyle.ColorSchemeLightMode {

View file

@ -3,6 +3,7 @@ package workspaces
import ( import (
"github.com/asdine/storm" "github.com/asdine/storm"
"github.com/pkg/errors" "github.com/pkg/errors"
"log"
"os" "os"
) )
@ -18,11 +19,19 @@ func New(metaInfo MetaInfo) *Manager {
return &Manager{metainfo: metaInfo} return &Manager{metainfo: metaInfo}
} }
func (m *Manager) OpenOrCreate(filename string) (*Workspace, error) {
if filename == "" {
return m.CreateTemp()
}
return m.Open(filename)
}
func (m *Manager) Open(filename string) (*Workspace, error) { func (m *Manager) Open(filename string) (*Workspace, error) {
db, err := storm.Open(filename) db, err := storm.Open(filename)
if err != nil { if err != nil {
return nil, errors.Wrapf(err, "cannot open workspace at %v", filename) return nil, errors.Wrapf(err, "cannot open workspace at %v", filename)
} }
log.Printf("open workspace: %v", filename)
return &Workspace{db: db}, nil return &Workspace{db: db}, nil
} }