Skips files with unknown extensions when not forcing a format.

Fixes #3685
This commit is contained in:
James Phillips 2017-11-10 18:06:07 -08:00
parent d52bf2dcc7
commit ae85cc4070
No known key found for this signature in database
GPG Key ID: 77183E682AC5FC11
2 changed files with 26 additions and 0 deletions

View File

@ -231,6 +231,17 @@ func (b *Builder) Build() (rt RuntimeConfig, err error) {
src.Format = FormatFrom(src.Name)
if configFormat != "" {
src.Format = configFormat
} else {
// If they haven't forced things to a specific format,
// then skip anything we don't understand, which is the
// behavior before we added the -config-format option.
switch src.Format {
case "json", "hcl":
// OK
default:
// SKIP
continue
}
}
if src.Format == "" {
return RuntimeConfig{}, fmt.Errorf(`config: Missing or invalid file extension for %q. Please use ".json" or ".hcl".`, src.Name)

View File

@ -361,6 +361,21 @@ func TestConfigFlagsAndEdgecases(t *testing.T) {
rt.DataDir = dataDir
},
},
{
desc: "-config-format disabled, skip unknown files",
args: []string{
`-data-dir=` + dataDir,
`-config-dir`, filepath.Join(dataDir, "conf"),
},
patch: func(rt *RuntimeConfig) {
rt.Datacenter = "a"
rt.DataDir = dataDir
},
pre: func() {
writeFile(filepath.Join(dataDir, "conf", "valid.json"), []byte(`{"datacenter":"a"}`))
writeFile(filepath.Join(dataDir, "conf", "invalid.skip"), []byte(`NOPE`))
},
},
{
desc: "-config-format=json",
args: []string{