Load the configs in one function, which handles the error too
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
We are doing the same thing to global and user level config, so it makes sense to do it in a separate function Loaded in the fmt package, so we can print out everything in one useful error (actually warning) message
This commit is contained in:
parent
82bb145cbc
commit
a254762288
25
config.go
25
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()))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user