From 5664c4ad14fca54a42356541847e6ae3f9613a87 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 3 Aug 2024 14:09:21 +0300 Subject: can compose and submit in one go --- internal/client/tui/compose.go | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) (limited to 'internal/client/tui/compose.go') diff --git a/internal/client/tui/compose.go b/internal/client/tui/compose.go index d918677..c2d5c16 100644 --- a/internal/client/tui/compose.go +++ b/internal/client/tui/compose.go @@ -1,7 +1,9 @@ package tui import ( + "context" "fmt" + "log" "os" "os/exec" "time" @@ -10,21 +12,34 @@ import ( tea "github.com/charmbracelet/bubbletea" ) -func composeAction(conf config.ClientConfig, queue bool) tea.Cmd { +type composePostAction int + +const ( + noPostAction composePostAction = iota + queueAfterCompose + submitAfterCompose +) + +func composeAction(ctx context.Context, conf config.ClientConfig, postAction composePostAction) tea.Cmd { err := ensureDirectoryExists(conf.DataDir) composeFile := fmt.Sprintf("%s/%s", conf.DataDir, conf.ComposeFile) + log.Println("Composing", composeFile) return openEditor(conf.Editor, composeFile, func() error { if err != nil { return err } - // ye - if !queue { - return nil + + switch postAction { + case submitAfterCompose: + return submitEntryNoCmd(ctx, conf, composeFile) + case queueAfterCompose: + timestamp := time.Now().Format("20060102-150405") + queuedFile := fmt.Sprintf("%s/queued-%s.txt", conf.DataDir, timestamp) + return os.Rename(composeFile, queuedFile) } - timestamp := time.Now().Format("20060102-150405") - queuedFile := fmt.Sprintf("%s/queued-%s.txt", conf.DataDir, timestamp) - return os.Rename(composeFile, queuedFile) + + return nil }) } -- cgit v1.2.3