config: don't log a warning if the config file is not found

we also support configuration via env vars
This commit is contained in:
Nicola Murino
2021-01-03 17:57:07 +01:00
parent 173c1820e1
commit c3410a3d91
2 changed files with 19 additions and 2 deletions

View File

@@ -2,6 +2,7 @@
package config
import (
"errors"
"fmt"
"os"
"path/filepath"
@@ -369,8 +370,16 @@ func LoadConfig(configDir, configFile string) error {
viper.AddConfigPath(".")
setConfigFile(configDir, configFile)
if err = viper.ReadInConfig(); err != nil {
logger.Warn(logSender, "", "error loading configuration file: %v", err)
logger.WarnToConsole("error loading configuration file: %v", err)
// if the user specify a configuration file we get os.ErrNotExist.
// viper.ConfigFileNotFoundError is returned if viper is unable
// to find sftpgo.{json,yaml, etc..} in any of the search paths
if errors.As(err, &viper.ConfigFileNotFoundError{}) {
logger.Debug(logSender, "", "no configuration file found")
} else {
// should we return the error and not start here?
logger.Warn(logSender, "", "error loading configuration file: %v", err)
logger.WarnToConsole("error loading configuration file: %v", err)
}
}
err = viper.Unmarshal(&globalConf)
if err != nil {

View File

@@ -58,6 +58,14 @@ func TestLoadConfigTest(t *testing.T) {
assert.NoError(t, err)
}
func TestLoadConfigFileNotFound(t *testing.T) {
reset()
viper.SetConfigName("configfile")
err := config.LoadConfig(os.TempDir(), "")
assert.NoError(t, err)
}
func TestEmptyBanner(t *testing.T) {
reset()