This commit is contained in:
Duncan Mac-Vicar P 2021-09-19 22:52:47 +05:30 committed by GitHub
commit 29d78e2099
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 4 deletions

View file

@ -2108,10 +2108,16 @@ func (v *Viper) getConfigFile() (string, error) {
func (v *Viper) searchInPath(in string) (filename string) {
jww.DEBUG.Println("Searching for config in ", in)
for _, ext := range SupportedExts {
jww.DEBUG.Println("Checking for", filepath.Join(in, v.configName+"."+ext))
if b, _ := exists(v.fs, filepath.Join(in, v.configName+"."+ext)); b {
jww.DEBUG.Println("Found: ", filepath.Join(in, v.configName+"."+ext))
return filepath.Join(in, v.configName+"."+ext)
var configFilePlusExt string
if ext != "" {
configFilePlusExt = v.configName + "." + ext
} else {
configFilePlusExt = v.configName
}
jww.DEBUG.Println("Checking for", filepath.Join(in, configFilePlusExt))
if b, _ := exists(v.fs, filepath.Join(in, configFilePlusExt)); b {
jww.DEBUG.Println("Found: ", filepath.Join(in, configFilePlusExt))
return filepath.Join(in, configFilePlusExt)
}
}

View file

@ -1375,6 +1375,26 @@ func TestSub(t *testing.T) {
assert.Equal(t, (*Viper)(nil), subv)
}
func TestEmptyExtension(t *testing.T) {
v := New()
fs := afero.NewMemMapFs()
v.SetFs(fs)
v.SetConfigName("config")
v.SetConfigType("json")
v.AddConfigPath("/etc/app/")
SupportedExts = append(SupportedExts, "")
err := afero.WriteFile(fs, "/etc/app/config", jsonExample, 0644)
if err != nil {
t.Fatal(err)
}
err = v.ReadInConfig()
if err != nil {
t.Fatal(err)
}
}
var hclWriteExpected = []byte(`"foos" = {
"foo" = {
"key" = 1