podman
1//go:build go1.16 && finder
2// +build go1.16,finder
3
4package viper
5
6import (
7"fmt"
8
9"github.com/spf13/afero"
10)
11
12// Search all configPaths for any config file.
13// Returns the first path that exists (and is a config file).
14func (v *Viper) findConfigFile() (string, error) {
15finder := finder{
16paths: v.configPaths,
17fileNames: []string{v.configName},
18extensions: SupportedExts,
19withoutExtension: v.configType != "",
20}
21
22file, err := finder.Find(afero.NewIOFS(v.fs))
23if err != nil {
24return "", err
25}
26
27if file == "" {
28return "", ConfigFileNotFoundError{v.configName, fmt.Sprintf("%s", v.configPaths)}
29}
30
31return file, nil
32}
33