mirror of https://github.com/spf13/viper.git
If the extension is empty, do not append the dot when building the path
This allows to append "" to the viper.SupportedExts, while still set the config type, and have viper not append anything instead of appending just a dot.
This commit is contained in:
parent
40e41dd224
commit
19b0e4054c
14
viper.go
14
viper.go
|
@ -1874,10 +1874,16 @@ func (v *Viper) getConfigFile() (string, error) {
|
||||||
func (v *Viper) searchInPath(in string) (filename string) {
|
func (v *Viper) searchInPath(in string) (filename string) {
|
||||||
jww.DEBUG.Println("Searching for config in ", in)
|
jww.DEBUG.Println("Searching for config in ", in)
|
||||||
for _, ext := range SupportedExts {
|
for _, ext := range SupportedExts {
|
||||||
jww.DEBUG.Println("Checking for", filepath.Join(in, v.configName+"."+ext))
|
configFilePlusExt := ""
|
||||||
if b, _ := exists(v.fs, filepath.Join(in, v.configName+"."+ext)); b {
|
if ext != "" {
|
||||||
jww.DEBUG.Println("Found: ", filepath.Join(in, v.configName+"."+ext))
|
configFilePlusExt = v.configName + "." + ext
|
||||||
return filepath.Join(in, 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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1112,6 +1112,26 @@ func TestSub(t *testing.T) {
|
||||||
assert.Equal(t, (*Viper)(nil), subv)
|
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" = {
|
var hclWriteExpected = []byte(`"foos" = {
|
||||||
"foo" = {
|
"foo" = {
|
||||||
"key" = 1
|
"key" = 1
|
||||||
|
|
Loading…
Reference in New Issue