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 {
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(),