package config import ( "encoding/json" "io" "os" ) type Configuration struct { Http struct { ListenAddress string `json:"listen"` BaseAddress string `json:"base"` } `json:"http"` Authentication struct { Username string `json:"username"` Password string `json:"password"` } `json:"auth"` } func Must(config Configuration, err error) Configuration { if err != nil { panic(err) } return config } func Open(filename string) (Configuration, error) { file, err := os.Open(filename) if err != nil { return Configuration{}, err } buf, err := io.ReadAll(file) if err != nil { return Configuration{}, err } config := Configuration{} if err := json.Unmarshal(buf, &config); err != nil { return Configuration{}, err } else { return config, nil } }