diff options
| author | Paul Buetow <paul@buetow.org> | 2024-07-01 10:50:23 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-07-01 10:50:23 +0300 |
| commit | ecc323b3b45e666a3376d7983424837d58336198 (patch) | |
| tree | 87b26520609f8cc4b34e4f22f20ed1c2091e8103 /internal/client/tui/compose.go | |
| parent | 2a7f70715de89e2aaf9e5f3bf9a22c6ab7426358 (diff) | |
initial submit
Diffstat (limited to 'internal/client/tui/compose.go')
| -rw-r--r-- | internal/client/tui/compose.go | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/internal/client/tui/compose.go b/internal/client/tui/compose.go index 7bdfbf3..3ba53ec 100644 --- a/internal/client/tui/compose.go +++ b/internal/client/tui/compose.go @@ -6,30 +6,33 @@ import ( "os/exec" "time" + config "codeberg.org/snonux/gos/internal/config/client" tea "github.com/charmbracelet/bubbletea" ) -type composeFinishedMsg struct { - callback func() error - err error -} - -func composeAction(editor, dataDir string) tea.Cmd { - // Maybe handle the error explicitly? Should be obvious anyway - // when the editor can't open the file because directory isn't there - _ = ensureDirectoryExists(dataDir) - composeFile := fmt.Sprintf("%s/compose.txt", dataDir) +func composeAction(conf config.ClientConfig, queue bool) tea.Cmd { + err := ensureDirectoryExists(conf.DataDir) + composeFile := fmt.Sprintf("%s/%s", conf.DataDir, conf.ComposeFile) - return openEditor(editor, composeFile, func() error { + return openEditor(conf.Editor, composeFile, func() error { + if err != nil { + return err + } + if !queue { + return nil + } timestamp := time.Now().Format("20060102-150405") - queuedFile := fmt.Sprintf("%s/queued-%s.txt", dataDir, timestamp) + queuedFile := fmt.Sprintf("%s/queued-%s.txt", conf.DataDir, timestamp) return os.Rename(composeFile, queuedFile) }) } func openEditor(editor, filePath string, callback func() error) tea.Cmd { return tea.ExecProcess(exec.Command(editor, filePath), func(err error) tea.Msg { - return composeFinishedMsg{callback, err} + return finishedMsg{ + callback: callback, + err: err, + } }) } |
