From e9a6c57ff52e321dd15df805f41c23d705a27961 Mon Sep 17 00:00:00 2001 From: Pepe44DEV Date: Sun, 3 May 2026 04:02:00 +0200 Subject: [PATCH] Eddited Config Logic --- main.go | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 61 insertions(+), 4 deletions(-) diff --git a/main.go b/main.go index 89dfe71..5aa0ce9 100644 --- a/main.go +++ b/main.go @@ -97,7 +97,13 @@ var ( ) func initialModel() model { - cfg, err := config.LoadConfig("config.yaml") + configPath := getConfigPath() + + if err := ensureConfigExists(configPath); err != nil { + return model{err: err} + } + + cfg, err := config.LoadConfig(configPath) if err != nil { return model{err: err} } @@ -188,7 +194,7 @@ func (m *model) saveNewServer() error { m.cfg.Servers = append(m.cfg.Servers, server) m.servers = m.cfg.Servers - err = config.SaveConfig("config.yaml", m.cfg) + err = config.SaveConfig(getConfigPath(), m.cfg) if err != nil { return err } @@ -779,7 +785,7 @@ func (m *model) saveEditedServer() error { m.cfg.Servers[m.editIndex] = server m.servers = m.cfg.Servers - err = config.SaveConfig("config.yaml", m.cfg) + err = config.SaveConfig(getConfigPath(), m.cfg) if err != nil { return err } @@ -807,7 +813,7 @@ func (m *model) deleteSelectedServer() error { m.selected-- } - err := config.SaveConfig("config.yaml", m.cfg) + err := config.SaveConfig(getConfigPath(), m.cfg) if err != nil { return err } @@ -1087,6 +1093,57 @@ func warnStyle() lipgloss.Style { Bold(true) } +func getConfigPath() string { + configDir, err := os.UserConfigDir() + if err != nil { + home, _ := os.UserHomeDir() + return home + "/.config/pulsegate/config.yaml" + } + + return configDir + "/pulsegate/config.yaml" +} + +func ensureConfigExists(path string) error { + if _, err := os.Stat(path); err == nil { + return nil + } + + dir := strings.TrimSuffix(path, "/config.yaml") + + if err := os.MkdirAll(dir, 0700); err != nil { + return err + } + + example := `settings: + theme: neon-green + terminal: + term: xterm-256color + enable_kitty_fix: true + +servers: + - name: Example Server + host: 10.0.0.10 + user: root + port: 22 + group: Homelab + auth: key + key: ~/.ssh/id_ed25519 + kitty_fix: true + +quick_commands: + - name: Disk Usage + command: df -h + + - name: RAM Usage + command: free -h + + - name: Uptime + command: uptime +` + + return os.WriteFile(path, []byte(example), 0600) +} + func main() { p := tea.NewProgram( initialModel(),