34 lines
661 B
Go
34 lines
661 B
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"os"
|
|
)
|
|
|
|
type Gateway struct {
|
|
Name string `json:"name"`
|
|
Address string `json:"address"`
|
|
}
|
|
|
|
type Config struct {
|
|
Controller string `json:"controller"`
|
|
Gateway []Gateway `json:"gateway"`
|
|
Metric int `json:"metric"`
|
|
Timeout int `json:"timeout"`
|
|
Interval int `json:"interval"`
|
|
Port int `json:"port"`
|
|
Hotswap bool `json:"hotswap"`
|
|
}
|
|
|
|
func LoadConfig(path string) (*Config, error) {
|
|
data, err := os.ReadFile(path)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
var cfg Config
|
|
if err := json.Unmarshal(data, &cfg); err != nil {
|
|
return nil, err
|
|
}
|
|
return &cfg, nil
|
|
}
|