From b5d97f633c960a826577fd80cb1d29e392dce34b Mon Sep 17 00:00:00 2001 From: bndw Date: Fri, 23 Jan 2026 21:10:04 -0800 Subject: Move default host from config file to state.json Instead of a separate ~/.config/deploy/config file, the default host is now stored as default_host in state.json. This simplifies the config and keeps all state in one place. The init command now automatically sets the default host if none is configured. --- cmd/deploy/deploy.go | 9 +++-- cmd/deploy/env.go | 24 +++++--------- cmd/deploy/init.go | 28 ++++++++-------- cmd/deploy/list.go | 24 +++++--------- cmd/deploy/manage.go | 93 ++++++++++++++++++++-------------------------------- 5 files changed, 72 insertions(+), 106 deletions(-) (limited to 'cmd/deploy') diff --git a/cmd/deploy/deploy.go b/cmd/deploy/deploy.go index 2b3ab4a..ee7ee4a 100644 --- a/cmd/deploy/deploy.go +++ b/cmd/deploy/deploy.go @@ -9,7 +9,6 @@ import ( "strconv" "strings" - "github.com/bdw/deploy/internal/config" "github.com/bdw/deploy/internal/ssh" "github.com/bdw/deploy/internal/state" "github.com/bdw/deploy/internal/templates" @@ -55,14 +54,14 @@ func runDeploy(args []string) { fs.Parse(args) - // Get host from flag or config + // Get host from flag or state default if *host == "" { - cfg, err := config.Load() + st, err := state.Load() if err != nil { - fmt.Fprintf(os.Stderr, "Error loading config: %v\n", err) + fmt.Fprintf(os.Stderr, "Error loading state: %v\n", err) os.Exit(1) } - *host = cfg.Host + *host = st.GetDefaultHost() } if *host == "" || *domain == "" { diff --git a/cmd/deploy/env.go b/cmd/deploy/env.go index 135fb77..a43cd6a 100644 --- a/cmd/deploy/env.go +++ b/cmd/deploy/env.go @@ -6,7 +6,6 @@ import ( "os" "strings" - "github.com/bdw/deploy/internal/config" "github.com/bdw/deploy/internal/ssh" "github.com/bdw/deploy/internal/state" ) @@ -29,14 +28,16 @@ func runEnv(args []string) { name := fs.Args()[0] - // Get host from flag or config + // Load state + st, err := state.Load() + if err != nil { + fmt.Fprintf(os.Stderr, "Error loading state: %v\n", err) + os.Exit(1) + } + + // Get host from flag or state default if *host == "" { - cfg, err := config.Load() - if err != nil { - fmt.Fprintf(os.Stderr, "Error loading config: %v\n", err) - os.Exit(1) - } - *host = cfg.Host + *host = st.GetDefaultHost() } if *host == "" { @@ -45,13 +46,6 @@ func runEnv(args []string) { os.Exit(1) } - // Load state - st, err := state.Load() - if err != nil { - fmt.Fprintf(os.Stderr, "Error loading state: %v\n", err) - os.Exit(1) - } - // Get app info app, err := st.GetApp(*host, name) if err != nil { diff --git a/cmd/deploy/init.go b/cmd/deploy/init.go index 72c7d53..1713879 100644 --- a/cmd/deploy/init.go +++ b/cmd/deploy/init.go @@ -6,7 +6,6 @@ import ( "os" "strings" - "github.com/bdw/deploy/internal/config" "github.com/bdw/deploy/internal/ssh" "github.com/bdw/deploy/internal/state" ) @@ -16,14 +15,16 @@ func runInit(args []string) { host := fs.String("host", "", "VPS host (SSH config alias or user@host)") fs.Parse(args) - // Get host from flag or config + // Load state + st, err := state.Load() + if err != nil { + fmt.Fprintf(os.Stderr, "Error loading state: %v\n", err) + os.Exit(1) + } + + // Get host from flag or state default if *host == "" { - cfg, err := config.Load() - if err != nil { - fmt.Fprintf(os.Stderr, "Error loading config: %v\n", err) - os.Exit(1) - } - *host = cfg.Host + *host = st.GetDefaultHost() } if *host == "" { @@ -115,13 +116,12 @@ import /etc/caddy/sites-enabled/* fmt.Println(" ✓ Caddy is active") } - // Initialize local state if needed - st, err := state.Load() - if err != nil { - fmt.Fprintf(os.Stderr, "Error loading state: %v\n", err) - os.Exit(1) - } + // Update state st.GetHost(*host) // Ensure host exists in state + if st.GetDefaultHost() == "" { + st.SetDefaultHost(*host) + fmt.Printf(" Set %s as default host\n", *host) + } if err := st.Save(); err != nil { fmt.Fprintf(os.Stderr, "Error saving state: %v\n", err) os.Exit(1) diff --git a/cmd/deploy/list.go b/cmd/deploy/list.go index b74cf35..ce1605b 100644 --- a/cmd/deploy/list.go +++ b/cmd/deploy/list.go @@ -6,7 +6,6 @@ import ( "os" "text/tabwriter" - "github.com/bdw/deploy/internal/config" "github.com/bdw/deploy/internal/state" ) @@ -15,14 +14,16 @@ func runList(args []string) { host := fs.String("host", "", "VPS host (SSH config alias or user@host)") fs.Parse(args) - // Get host from flag or config + // Load state + st, err := state.Load() + if err != nil { + fmt.Fprintf(os.Stderr, "Error loading state: %v\n", err) + os.Exit(1) + } + + // Get host from flag or state default if *host == "" { - cfg, err := config.Load() - if err != nil { - fmt.Fprintf(os.Stderr, "Error loading config: %v\n", err) - os.Exit(1) - } - *host = cfg.Host + *host = st.GetDefaultHost() } if *host == "" { @@ -31,13 +32,6 @@ func runList(args []string) { os.Exit(1) } - // Load state - st, err := state.Load() - if err != nil { - fmt.Fprintf(os.Stderr, "Error loading state: %v\n", err) - os.Exit(1) - } - apps := st.ListApps(*host) if len(apps) == 0 { fmt.Printf("No deployments found for %s\n", *host) diff --git a/cmd/deploy/manage.go b/cmd/deploy/manage.go index 3cee1f4..1f52b92 100644 --- a/cmd/deploy/manage.go +++ b/cmd/deploy/manage.go @@ -5,7 +5,6 @@ import ( "fmt" "os" - "github.com/bdw/deploy/internal/config" "github.com/bdw/deploy/internal/ssh" "github.com/bdw/deploy/internal/state" ) @@ -23,14 +22,16 @@ func runRemove(args []string) { name := fs.Args()[0] - // Get host from flag or config + // Load state + st, err := state.Load() + if err != nil { + fmt.Fprintf(os.Stderr, "Error loading state: %v\n", err) + os.Exit(1) + } + + // Get host from flag or state default if *host == "" { - cfg, err := config.Load() - if err != nil { - fmt.Fprintf(os.Stderr, "Error loading config: %v\n", err) - os.Exit(1) - } - *host = cfg.Host + *host = st.GetDefaultHost() } if *host == "" { @@ -39,13 +40,6 @@ func runRemove(args []string) { os.Exit(1) } - // Load state - st, err := state.Load() - if err != nil { - fmt.Fprintf(os.Stderr, "Error loading state: %v\n", err) - os.Exit(1) - } - // Get app info app, err := st.GetApp(*host, name) if err != nil { @@ -128,14 +122,16 @@ func runLogs(args []string) { name := fs.Args()[0] - // Get host from flag or config + // Load state + st, err := state.Load() + if err != nil { + fmt.Fprintf(os.Stderr, "Error loading state: %v\n", err) + os.Exit(1) + } + + // Get host from flag or state default if *host == "" { - cfg, err := config.Load() - if err != nil { - fmt.Fprintf(os.Stderr, "Error loading config: %v\n", err) - os.Exit(1) - } - *host = cfg.Host + *host = st.GetDefaultHost() } if *host == "" { @@ -144,13 +140,6 @@ func runLogs(args []string) { os.Exit(1) } - // Load state to verify app exists - st, err := state.Load() - if err != nil { - fmt.Fprintf(os.Stderr, "Error loading state: %v\n", err) - os.Exit(1) - } - app, err := st.GetApp(*host, name) if err != nil { fmt.Fprintf(os.Stderr, "Error: %v\n", err) @@ -207,14 +196,16 @@ func runStatus(args []string) { name := fs.Args()[0] - // Get host from flag or config + // Load state + st, err := state.Load() + if err != nil { + fmt.Fprintf(os.Stderr, "Error loading state: %v\n", err) + os.Exit(1) + } + + // Get host from flag or state default if *host == "" { - cfg, err := config.Load() - if err != nil { - fmt.Fprintf(os.Stderr, "Error loading config: %v\n", err) - os.Exit(1) - } - *host = cfg.Host + *host = st.GetDefaultHost() } if *host == "" { @@ -223,13 +214,6 @@ func runStatus(args []string) { os.Exit(1) } - // Load state to verify app exists - st, err := state.Load() - if err != nil { - fmt.Fprintf(os.Stderr, "Error loading state: %v\n", err) - os.Exit(1) - } - app, err := st.GetApp(*host, name) if err != nil { fmt.Fprintf(os.Stderr, "Error: %v\n", err) @@ -274,14 +258,16 @@ func runRestart(args []string) { name := fs.Args()[0] - // Get host from flag or config + // Load state + st, err := state.Load() + if err != nil { + fmt.Fprintf(os.Stderr, "Error loading state: %v\n", err) + os.Exit(1) + } + + // Get host from flag or state default if *host == "" { - cfg, err := config.Load() - if err != nil { - fmt.Fprintf(os.Stderr, "Error loading config: %v\n", err) - os.Exit(1) - } - *host = cfg.Host + *host = st.GetDefaultHost() } if *host == "" { @@ -290,13 +276,6 @@ func runRestart(args []string) { os.Exit(1) } - // Load state to verify app exists - st, err := state.Load() - if err != nil { - fmt.Fprintf(os.Stderr, "Error loading state: %v\n", err) - os.Exit(1) - } - app, err := st.GetApp(*host, name) if err != nil { fmt.Fprintf(os.Stderr, "Error: %v\n", err) -- cgit v1.2.3