add deprecation check to config helper

This commit is contained in:
Megan Marsh 2020-05-28 16:14:17 -07:00
parent 37df64873f
commit 15b14d4879

View File

@ -143,8 +143,29 @@ func Decode(target interface{}, config *DecodeOpts, raws ...interface{}) error {
sort.Strings(md.Unused)
for _, unused := range md.Unused {
if unused != "type" && !strings.HasPrefix(unused, "packer_") {
err = multierror.Append(err, fmt.Errorf(
"unknown configuration key: %q", unused))
// Check for whether the key is handled in a packer fix
// call.
fixable := false
for _, deprecatedOption := range DeprecatedOptions {
if unused == deprecatedOption {
fixable = true
break
}
}
unusedErr := fmt.Errorf("unknown configuration key: '%q'",
unused)
if fixable {
unusedErr = fmt.Errorf("Deprecated configuration key: '%s'."+
" Please call `packer fix` against your template to "+
"update your template to be compatable with the current "+
"version of Packer. Visit "+
"https://www.packer.io/docs/commands/fix/ for more detail.",
unused)
}
err = multierror.Append(err, unusedErr)
}
}
if err != nil {