summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd/gos/main.go12
-rw-r--r--internal/client/tui/compose.go4
-rw-r--r--internal/client/tui/tui.go5
-rw-r--r--internal/config/client/client.go4
4 files changed, 20 insertions, 5 deletions
diff --git a/cmd/gos/main.go b/cmd/gos/main.go
index 35b476f..f757c64 100644
--- a/cmd/gos/main.go
+++ b/cmd/gos/main.go
@@ -3,6 +3,7 @@ package main
import (
"flag"
"log"
+ "os"
"codeberg.org/snonux/gos/internal/client/tui"
config "codeberg.org/snonux/gos/internal/config/client"
@@ -16,6 +17,17 @@ func main() {
log.Fatal("error building config:", err)
}
+ var logFD *os.File
+ if conf.LogFile != "" {
+ var err error
+ logFD, err = os.OpenFile(conf.LogFile, os.O_APPEND|os.O_RDWR|os.O_CREATE, 0644)
+ if err != nil {
+ panic(err)
+ }
+ log.SetOutput(logFD)
+ }
+ defer logFD.Close()
+
if err := tui.Run(conf); err != nil {
log.Fatal("error running TUI:", err)
}
diff --git a/internal/client/tui/compose.go b/internal/client/tui/compose.go
index 4672462..d918677 100644
--- a/internal/client/tui/compose.go
+++ b/internal/client/tui/compose.go
@@ -31,8 +31,8 @@ func composeAction(conf config.ClientConfig, queue bool) tea.Cmd {
func openEditor(editor, filePath string, cb func() error) tea.Cmd {
return tea.ExecProcess(exec.Command(editor, filePath), func(err error) tea.Msg {
return finishedMsg{
- cb: cb,
- err: err,
+ cb: cb,
+ err: err,
}
})
}
diff --git a/internal/client/tui/tui.go b/internal/client/tui/tui.go
index 2f02910..b06f585 100644
--- a/internal/client/tui/tui.go
+++ b/internal/client/tui/tui.go
@@ -79,15 +79,14 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
case cursorSubmit:
return m, submitAction(m.ctx, m.conf)
case cursorComposeAndSubmit:
- // TODO: Find out correct way how to chain two tea.Cmd's??
- panic("not yet implemented")
+ return m, tea.Sequence(composeAction(m.conf, false), submitAction(m.ctx, m.conf))
}
case "1":
return m, composeAction(m.conf, false)
case "2":
return m, submitAction(m.ctx, m.conf)
case "3":
- panic("not yet implemented")
+ return m, tea.Sequence(composeAction(m.conf, false), submitAction(m.ctx, m.conf))
case "a":
m.altscreenActive = !m.altscreenActive
diff --git a/internal/config/client/client.go b/internal/config/client/client.go
index 5571898..8676114 100644
--- a/internal/config/client/client.go
+++ b/internal/config/client/client.go
@@ -15,6 +15,7 @@ type ClientConfig struct {
Editor string `json:"Editor,omitempty"`
DataDir string `json:"StateDir,omitempty"`
ComposeFile string `json:"ComposeFile,omitempty"`
+ LogFile string `json:"LogFile,omitempty"`
}
func New(configFile string) (ClientConfig, error) {
@@ -28,6 +29,9 @@ func New(configFile string) (ClientConfig, error) {
conf.DataDir = config.FromENV("GOS_DATA_DIR", conf.DataDir, defaultDataDir)
conf.ComposeFile = config.FromENV("GOS_COMPOSE_FILE", conf.ComposeFile, "compose.txt")
+ defaultLogFile := fmt.Sprintf("%s/.gos/gos.log", os.Getenv("HOME"))
+ conf.LogFile = config.FromENV("GOS_LOG_FILE", conf.LogFile, defaultLogFile)
+
return conf, nil
}