package ready import ( "time" "github.com/mitchellh/mapstructure" "github.com/spf13/viper" "github.com/zitadel/logging" "github.com/zitadel/zitadel/internal/config/hook" ) type Config struct { Log *logging.Config Port uint16 } func MustNewConfig(v *viper.Viper) *Config { config := new(Config) err := v.Unmarshal(config, viper.DecodeHook(mapstructure.ComposeDecodeHookFunc( hook.Base64ToBytesHookFunc(), mapstructure.StringToTimeDurationHookFunc(), mapstructure.StringToTimeHookFunc(time.RFC3339), mapstructure.StringToSliceHookFunc(","), )), ) logging.OnError(err).Fatal("unable to read default config") err = config.Log.SetLogger() logging.OnError(err).Fatal("unable to set logger") return config }