diff options
Diffstat (limited to 'bridge/config/config.go')
-rw-r--r-- | bridge/config/config.go | 18 |
1 files changed, 18 insertions, 0 deletions
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() |