summaryrefslogtreecommitdiffstats
path: root/utils/config.go
diff options
context:
space:
mode:
authorcpanato <ctadeu@gmail.com>2018-09-04 23:27:39 +0200
committercpanato <ctadeu@gmail.com>2018-09-04 23:27:39 +0200
commit4cf6913c1c58847b69bd7a16f046d4bfc676bdb4 (patch)
treedbad14ece2033e395eb8f93920ce7256da803f35 /utils/config.go
parent50af3a19a2817097355df9fd70c0fda0328d8bae (diff)
parentd2190527eafdae31e14ba0832dcfb79a0a1e223b (diff)
downloadchat-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.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)
}