summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/spf13/viper/fs.go
diff options
context:
space:
mode:
authordependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>2022-01-18 20:34:42 +0100
committerGitHub <noreply@github.com>2022-01-18 20:34:42 +0100
commit6aa05b39810bef5b5cf21cb2abd02012ce727574 (patch)
treeef76720d307a7edd2b71f1ae005df8b62594d7cd /vendor/github.com/spf13/viper/fs.go
parentaad60c882e16cd2c8769a49e6d9f87a040590d62 (diff)
downloadmatterbridge-msglm-6aa05b39810bef5b5cf21cb2abd02012ce727574.tar.gz
matterbridge-msglm-6aa05b39810bef5b5cf21cb2abd02012ce727574.tar.bz2
matterbridge-msglm-6aa05b39810bef5b5cf21cb2abd02012ce727574.zip
Bump github.com/spf13/viper from 1.9.0 to 1.10.1 (#1684)
Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.9.0 to 1.10.1. - [Release notes](https://github.com/spf13/viper/releases) - [Commits](https://github.com/spf13/viper/compare/v1.9.0...v1.10.1) --- updated-dependencies: - dependency-name: github.com/spf13/viper dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Diffstat (limited to 'vendor/github.com/spf13/viper/fs.go')
-rw-r--r--vendor/github.com/spf13/viper/fs.go65
1 files changed, 65 insertions, 0 deletions
diff --git a/vendor/github.com/spf13/viper/fs.go b/vendor/github.com/spf13/viper/fs.go
new file mode 100644
index 00000000..ecb1769e
--- /dev/null
+++ b/vendor/github.com/spf13/viper/fs.go
@@ -0,0 +1,65 @@
+//go:build go1.16 && finder
+// +build go1.16,finder
+
+package viper
+
+import (
+ "errors"
+ "io/fs"
+ "path"
+)
+
+type finder struct {
+ paths []string
+ fileNames []string
+ extensions []string
+
+ withoutExtension bool
+}
+
+func (f finder) Find(fsys fs.FS) (string, error) {
+ for _, searchPath := range f.paths {
+ for _, fileName := range f.fileNames {
+ for _, extension := range f.extensions {
+ filePath := path.Join(searchPath, fileName+"."+extension)
+
+ ok, err := fileExists(fsys, filePath)
+ if err != nil {
+ return "", err
+ }
+
+ if ok {
+ return filePath, nil
+ }
+ }
+
+ if f.withoutExtension {
+ filePath := path.Join(searchPath, fileName)
+
+ ok, err := fileExists(fsys, filePath)
+ if err != nil {
+ return "", err
+ }
+
+ if ok {
+ return filePath, nil
+ }
+ }
+ }
+ }
+
+ return "", nil
+}
+
+func fileExists(fsys fs.FS, filePath string) (bool, error) {
+ fileInfo, err := fs.Stat(fsys, filePath)
+ if err == nil {
+ return !fileInfo.IsDir(), nil
+ }
+
+ if errors.Is(err, fs.ErrNotExist) {
+ return false, nil
+ }
+
+ return false, err
+}