summaryrefslogtreecommitdiffstats
path: root/bridge
diff options
context:
space:
mode:
authorPatrick Connolly <patrick.c.connolly@gmail.com>2018-11-08 05:32:12 +0800
committerWim <wim@42.be>2018-11-07 22:32:12 +0100
commitf2703979a47ce21792fbb4398bcc241e86beab6d (patch)
treea7c80dd5b7ef5350532c096678edeecc8030a0a9 /bridge
parentd2a1dc792f9a2bb147afc6e8fde2c9f723f29cf1 (diff)
downloadmatterbridge-msglm-f2703979a47ce21792fbb4398bcc241e86beab6d.tar.gz
matterbridge-msglm-f2703979a47ce21792fbb4398bcc241e86beab6d.tar.bz2
matterbridge-msglm-f2703979a47ce21792fbb4398bcc241e86beab6d.zip
Clean up config loading. (#561)
Diffstat (limited to 'bridge')
-rw-r--r--bridge/config/config.go40
1 files changed, 18 insertions, 22 deletions
diff --git a/bridge/config/config.go b/bridge/config/config.go
index 5ccf6041..bdf77f88 100644
--- a/bridge/config/config.go
+++ b/bridge/config/config.go
@@ -2,7 +2,7 @@ package config
import (
"bytes"
- "os"
+ "io/ioutil"
"strings"
"sync"
"time"
@@ -183,42 +183,38 @@ type Config struct {
func NewConfig(cfgfile string) *Config {
log.SetFormatter(&prefixed.TextFormatter{PrefixPadding: 13, DisableColors: true, FullTimestamp: false})
flog := log.WithFields(log.Fields{"prefix": "config"})
- var cfg ConfigValues
- viper.SetConfigType("toml")
viper.SetConfigFile(cfgfile)
- viper.SetEnvPrefix("matterbridge")
- viper.AddConfigPath(".")
- viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_", "-", "_"))
- viper.AutomaticEnv()
- f, err := os.Open(cfgfile)
+ input, err := getFileContents(cfgfile)
if err != nil {
log.Fatal(err)
}
- err = viper.ReadConfig(f)
- if err != nil {
- log.Fatal(err)
- }
- err = viper.Unmarshal(&cfg)
- if err != nil {
- log.Fatal("blah", err)
- }
- mycfg := new(Config)
- mycfg.v = viper.GetViper()
- if cfg.General.MediaDownloadSize == 0 {
- cfg.General.MediaDownloadSize = 1000000
+ mycfg := NewConfigFromString(input)
+ if mycfg.ConfigValues.General.MediaDownloadSize == 0 {
+ mycfg.ConfigValues.General.MediaDownloadSize = 1000000
}
viper.WatchConfig()
viper.OnConfigChange(func(e fsnotify.Event) {
flog.Println("Config file changed:", e.Name)
})
-
- mycfg.ConfigValues = &cfg
return mycfg
}
+func getFileContents(filename string) ([]byte, error) {
+ input, err := ioutil.ReadFile(filename)
+ if err != nil {
+ log.Fatal(err)
+ return []byte(nil), err
+ }
+ return input, nil
+}
+
func NewConfigFromString(input []byte) *Config {
var cfg ConfigValues
viper.SetConfigType("toml")
+ viper.SetEnvPrefix("matterbridge")
+ viper.AddConfigPath(".")
+ viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_", "-", "_"))
+ viper.AutomaticEnv()
err := viper.ReadConfig(bytes.NewBuffer(input))
if err != nil {
log.Fatal(err)