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) }