summaryrefslogtreecommitdiff
path: root/internal/client/tui/compose.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-07-01 10:50:23 +0300
committerPaul Buetow <paul@buetow.org>2024-07-01 10:50:23 +0300
commitecc323b3b45e666a3376d7983424837d58336198 (patch)
tree87b26520609f8cc4b34e4f22f20ed1c2091e8103 /internal/client/tui/compose.go
parent2a7f70715de89e2aaf9e5f3bf9a22c6ab7426358 (diff)
initial submit
Diffstat (limited to 'internal/client/tui/compose.go')
-rw-r--r--internal/client/tui/compose.go29
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,
+ }
})
}