11
"github.com/spf13/afero"
16
func (v *Viper) findConfigFile() (string, error) {
17
v.logger.Info("searching for config in paths", "paths", v.configPaths)
19
for _, cp := range v.configPaths {
20
file := v.searchInPath(cp)
25
return "", ConfigFileNotFoundError{v.configName, fmt.Sprintf("%s", v.configPaths)}
28
func (v *Viper) searchInPath(in string) (filename string) {
29
v.logger.Debug("searching for config in path", "path", in)
30
for _, ext := range SupportedExts {
31
v.logger.Debug("checking if file exists", "file", filepath.Join(in, v.configName+"."+ext))
32
if b, _ := exists(v.fs, filepath.Join(in, v.configName+"."+ext)); b {
33
v.logger.Debug("found file", "file", filepath.Join(in, v.configName+"."+ext))
34
return filepath.Join(in, v.configName+"."+ext)
38
if v.configType != "" {
39
if b, _ := exists(v.fs, filepath.Join(in, v.configName)); b {
40
return filepath.Join(in, v.configName)
48
func exists(fs afero.Fs, path string) (bool, error) {
49
stat, err := fs.Stat(path)
51
return !stat.IsDir(), nil
53
if os.IsNotExist(err) {