From 15b14d4879baa9bc5ffa40ce5b23558cd16e10d3 Mon Sep 17 00:00:00 2001 From: Megan Marsh Date: Thu, 28 May 2020 16:14:17 -0700 Subject: [PATCH] add deprecation check to config helper --- helper/config/decode.go | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/helper/config/decode.go b/helper/config/decode.go index 327241619..678c90520 100644 --- a/helper/config/decode.go +++ b/helper/config/decode.go @@ -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 {