package main import ( _ "embed" "encoding/json" "log" ) //go:embed configs/default.json var defaultConfig []byte type StartupConfig struct { MQTT struct { Broker string `json:"broker"` ClientID string `json:"client-id"` TopicPrefix string `json:"topic-prefix"` } `json:"mqtt"` Homematic struct { CCU string `json:"ccu"` PollingPeriodMilliseconds int `json:"polling-period-milliseconds"` } `json:"homematic"` } func (sc *StartupConfig) FromJSON(data []byte) error { return json.Unmarshal(data, sc) } func GetStartupConfig() StartupConfig { config := StartupConfig{} err := config.FromJSON(defaultConfig) if err != nil { log.Fatalf("Could not parse default config: %v", err) } return config }