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