diff --git a/config.go b/config.go index 2375cb2..c069349 100644 --- a/config.go +++ b/config.go @@ -1,6 +1,7 @@ package main import ( + "fmt" "os" "path/filepath" "strings" @@ -53,15 +54,9 @@ func init() { // Set config defaults setCfgDefaults() - // Load config files - etcProvider := file.Provider(etcPath) - cfgProvider := file.Provider(cfgPath) - k.Load(etcProvider, toml.Parser()) - k.Load(cfgProvider, toml.Parser()) - - // Watch configs for changes - cfgWatch(etcProvider) - cfgWatch(cfgProvider) + // Load and watch config files + loadAndwatchCfgFile(etcPath) + loadAndwatchCfgFile(cfgPath) // Load envireonment variables k.Load(env.Provider("ITD_", "_", func(s string) string { @@ -69,14 +64,22 @@ func init() { }), nil) } -func cfgWatch(provider *file.File) { +func loadAndwatchCfgFile(filename string) { + provider := file.Provider(filename) + + if cfgError := k.Load(provider, toml.Parser()); cfgError != nil { + log.Warn().Msg(fmt.Sprintf("Error while trying to read %s: %s\n", filename, cfgError.Error())) + } + // Watch for changes and reload when detected provider.Watch(func(_ interface{}, err error) { if err != nil { return } - k.Load(provider, toml.Parser()) + if cfgError := k.Load(provider, toml.Parser()); cfgError != nil { + log.Warn().Msg(fmt.Sprintf("Error while trying to read %s: %s\n", filename, cfgError.Error())) + } }) }