diff options
Diffstat (limited to 'bridge')
-rw-r--r-- | bridge/bridge.go | 6 | ||||
-rw-r--r-- | bridge/config/config.go | 18 |
2 files changed, 19 insertions, 5 deletions
diff --git a/bridge/bridge.go b/bridge/bridge.go index 8135cabf..0436eeb6 100644 --- a/bridge/bridge.go +++ b/bridge/bridge.go @@ -68,12 +68,8 @@ func (b *Bridge) joinChannels(channels map[string]config.ChannelInfo, exists map return nil } -func (b *Bridge) ReloadConfig() { - return -} - func (b *Bridge) GetBool(key string) bool { - if b.Config.GetBool(b.Account+"."+key) != false { + if b.Config.GetBool(b.Account + "." + key) { return b.Config.GetBool(b.Account + "." + key) } return b.Config.GetBool("general." + key) diff --git a/bridge/config/config.go b/bridge/config/config.go index a89f9aa7..42a87f1c 100644 --- a/bridge/config/config.go +++ b/bridge/config/config.go @@ -1,6 +1,7 @@ package config import ( + "bytes" log "github.com/sirupsen/logrus" "github.com/spf13/viper" "os" @@ -192,6 +193,23 @@ func NewConfig(cfgfile string) *Config { return mycfg } +func NewConfigFromString(input []byte) *Config { + var cfg ConfigValues + viper.SetConfigType("toml") + err := viper.ReadConfig(bytes.NewBuffer(input)) + if err != nil { + log.Fatal(err) + } + err = viper.Unmarshal(&cfg) + if err != nil { + log.Fatal(err) + } + mycfg := new(Config) + mycfg.v = viper.GetViper() + mycfg.ConfigValues = &cfg + return mycfg +} + func (c *Config) GetBool(key string) bool { c.RLock() defer c.RUnlock() |