Files
bj_power/bj_power_workstation/internal/config/config.go
T

45 lines
842 B
Go

package config
import (
"encoding/json"
"os"
)
type Config struct {
APIURL string `json:"api_url"`
SerialPort string `json:"serial_port"`
BaudRate int `json:"baud_rate"`
DisplayUnit string `json:"display_unit"`
}
func Load(path string) (Config, error) {
cfg := Config{
APIURL: "http://localhost:8888",
SerialPort: "COM7",
BaudRate: 115200,
DisplayUnit: "mm",
}
data, err := os.ReadFile(path)
if err != nil {
if os.IsNotExist(err) {
if err := cfg.Save(path); err != nil {
return cfg, err
}
return cfg, nil
}
return cfg, err
}
if err := json.Unmarshal(data, &cfg); err != nil {
return cfg, err
}
return cfg, nil
}
func (c Config) Save(path string) error {
data, err := json.MarshalIndent(c, "", " ")
if err != nil {
return err
}
return os.WriteFile(path, data, 0644)
}