package main import ( _ "embed" "encoding/json" "log" ) //go:embed configs/default.json var defaultConfig []byte type MQTTConfig struct { Broker string `json:"broker"` ClientID string `json:"client-id"` TopicPrefix string `json:"topic-prefix"` } type HomematicConfig struct { CCU string `json:"ccu"` PollingPeriod string `json:"polling-period"` } type StartupConfig struct { MQTT MQTTConfig `json:"mqtt"` Homematic HomematicConfig `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 }