feat: add configuration file handling

- add helper function to parse configuration from a YAML file
- update command-line parameters to include a config file option
- remove hardcoded Pomodoro settings and use parsed config instead
- delete obsolete PomodoroSettings.go file

🤖
This commit is contained in:
Sebastian Mark 2024-10-23 17:36:30 +02:00
parent 25e939f523
commit bb790459c1
7 changed files with 69 additions and 26 deletions

26
internal/helper/config.go Normal file
View file

@ -0,0 +1,26 @@
package helper
import (
"ChronoTomato/pkg/models"
"github.com/charmbracelet/log"
"gopkg.in/yaml.v2"
"os"
)
func ParseConfig(filename string) models.ConfigFile {
var config models.ConfigFile
yamlFile, err := os.ReadFile(filename)
if err != nil {
log.Error("Error opening config file!", "reason", err)
log.Info("Using defaults")
return models.ConfigFile{
URL: "ws://localhost:8080/ws",
}
}
err = yaml.Unmarshal(yamlFile, &config)
if err != nil {
log.Fatalf("Unmarshal: %v", err)
}
return config
}

View file

@ -1,7 +1,6 @@
package websocket
import (
"ChronoTomato/config"
"encoding/json"
"git.smsvc.net/pomodoro/GoTomato/pkg/models"
"github.com/charmbracelet/log"
@ -32,11 +31,11 @@ func SendCmd(conn *websocket.Conn, pwd string, cmd string) {
sendClientCommand(conn, message)
}
func Send_updateSettings(conn *websocket.Conn, pwd string) {
func Send_updateSettings(conn *websocket.Conn, pwd string, settings models.GoTomatoPomodoroConfig) {
message := models.ClientCommand{
Command: "updateSettings",
Password: pwd,
PomodoroSettings: config.PomodoroSettings,
PomodoroSettings: settings,
}
sendClientCommand(conn, message)