Merge pull request #3686 from hashicorp/skip-unknown

Skips files with unknown extensions when not forcing a format.
This commit is contained in:
James Phillips 2017-11-10 18:07:37 -08:00 committed by GitHub
commit 8550c07967
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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) src.Format = FormatFrom(src.Name)
if configFormat != "" { if configFormat != "" {
src.Format = 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 == "" { if src.Format == "" {
return RuntimeConfig{}, fmt.Errorf(`config: Missing or invalid file extension for %q. Please use ".json" or ".hcl".`, src.Name) 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 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", desc: "-config-format=json",
args: []string{ args: []string{