//go:build go1.16 && finder // +build go1.16,finder package viper import ( "fmt" "github.com/spf13/afero" ) // Search all configPaths for any config file. // Returns the first path that exists (and is a config file). func (v *Viper) findConfigFile() (string, error) { finder := finder{ paths: v.configPaths, fileNames: []string{v.configName}, extensions: SupportedExts, withoutExtension: v.configType != "", } file, err := finder.Find(afero.NewIOFS(v.fs)) if err != nil { return "", err } if file == "" { return "", ConfigFileNotFoundError{v.configName, fmt.Sprintf("%s", v.configPaths)} } return file, nil }