diff options
author | cpanato <ctadeu@gmail.com> | 2018-09-04 23:27:39 +0200 |
---|---|---|
committer | cpanato <ctadeu@gmail.com> | 2018-09-04 23:27:39 +0200 |
commit | 4cf6913c1c58847b69bd7a16f046d4bfc676bdb4 (patch) | |
tree | dbad14ece2033e395eb8f93920ce7256da803f35 /utils/config.go | |
parent | 50af3a19a2817097355df9fd70c0fda0328d8bae (diff) | |
parent | d2190527eafdae31e14ba0832dcfb79a0a1e223b (diff) | |
download | chat-4cf6913c1c58847b69bd7a16f046d4bfc676bdb4.tar.gz chat-4cf6913c1c58847b69bd7a16f046d4bfc676bdb4.tar.bz2 chat-4cf6913c1c58847b69bd7a16f046d4bfc676bdb4.zip |
Merge remote-tracking branch 'upstream/release-5.3' into release-5.3-daily-merge-20180904
Diffstat (limited to 'utils/config.go')
-rw-r--r-- | utils/config.go | 14 |
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) } |