Eddited Config Logic

This commit is contained in:
2026-05-03 04:02:00 +02:00
parent b568ae0f02
commit e9a6c57ff5

65
main.go
View File

@@ -97,7 +97,13 @@ var (
) )
func initialModel() model { 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 { if err != nil {
return model{err: err} return model{err: err}
} }
@@ -188,7 +194,7 @@ func (m *model) saveNewServer() error {
m.cfg.Servers = append(m.cfg.Servers, server) m.cfg.Servers = append(m.cfg.Servers, server)
m.servers = m.cfg.Servers m.servers = m.cfg.Servers
err = config.SaveConfig("config.yaml", m.cfg) err = config.SaveConfig(getConfigPath(), m.cfg)
if err != nil { if err != nil {
return err return err
} }
@@ -779,7 +785,7 @@ func (m *model) saveEditedServer() error {
m.cfg.Servers[m.editIndex] = server m.cfg.Servers[m.editIndex] = server
m.servers = m.cfg.Servers m.servers = m.cfg.Servers
err = config.SaveConfig("config.yaml", m.cfg) err = config.SaveConfig(getConfigPath(), m.cfg)
if err != nil { if err != nil {
return err return err
} }
@@ -807,7 +813,7 @@ func (m *model) deleteSelectedServer() error {
m.selected-- m.selected--
} }
err := config.SaveConfig("config.yaml", m.cfg) err := config.SaveConfig(getConfigPath(), m.cfg)
if err != nil { if err != nil {
return err return err
} }
@@ -1087,6 +1093,57 @@ func warnStyle() lipgloss.Style {
Bold(true) 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() { func main() {
p := tea.NewProgram( p := tea.NewProgram(
initialModel(), initialModel(),