summaryrefslogtreecommitdiffstats
path: root/utils/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'utils/config.go')
-rw-r--r--utils/config.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/utils/config.go b/utils/config.go
index 2e57ec917..786e248ca 100644
--- a/utils/config.go
+++ b/utils/config.go
@@ -245,6 +245,16 @@ func ReadConfig(r io.Reader, allowEnvironmentOverrides bool) (*model.Config, map
var config model.Config
unmarshalErr := v.Unmarshal(&config)
+ // https://github.com/spf13/viper/issues/324
+ // https://github.com/spf13/viper/issues/348
+ if unmarshalErr == nil {
+ config.PluginSettings.Plugins = make(map[string]map[string]interface{})
+ unmarshalErr = v.UnmarshalKey("pluginsettings.plugins", &config.PluginSettings.Plugins)
+ }
+ if unmarshalErr == nil {
+ config.PluginSettings.PluginStates = make(map[string]*model.PluginState)
+ unmarshalErr = v.UnmarshalKey("pluginsettings.pluginstates", &config.PluginSettings.PluginStates)
+ }
envConfig := v.EnvSettings()
@@ -272,6 +282,10 @@ func newViper(allowEnvironmentOverrides bool) *viper.Viper {
defaults := getDefaultsFromStruct(model.Config{})
for key, value := range defaults {
+ if key == "PluginSettings.Plugins" || key == "PluginSettings.PluginStates" {
+ continue
+ }
+
v.SetDefault(key, value)
}