hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/internal/cli/cli.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/cli/cli.go')
-rw-r--r--internal/cli/cli.go16
1 files changed, 13 insertions, 3 deletions
diff --git a/internal/cli/cli.go b/internal/cli/cli.go
index 7e7705e..4f98b6d 100644
--- a/internal/cli/cli.go
+++ b/internal/cli/cli.go
@@ -11,6 +11,7 @@ import (
"github.com/charmbracelet/lipgloss"
"github.com/hachem-wtf/benson/internal/config"
+ "github.com/hachem-wtf/benson/internal/setup"
)
type command struct {
@@ -42,10 +43,19 @@ type model struct {
func Run(version string) error {
cfg, err := config.Load()
if err != nil {
- if os.IsNotExist(err) {
- return fmt.Errorf("no config found — run `benson setup` to create one")
+ if !os.IsNotExist(err) {
+ return fmt.Errorf("failed to load %s: %w", config.Path(), err)
+ }
+
+ fmt.Println("No configuration found — let's set one up.")
+ if err := setup.Run(); err != nil {
+ return err
+ }
+
+ cfg, err = config.Load()
+ if err != nil {
+ return fmt.Errorf("setup did not complete — run `benson setup` to configure")
}
- return fmt.Errorf("failed to load %s: %w", config.Path(), err)
}
_, err = tea.NewProgram(newModel(cfg, version)).Run()