Eddited Config Logic
This commit is contained in:
65
main.go
65
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(),
|
||||
|
||||
Reference in New Issue
Block a user