Merge pull request #12872 from hashicorp/backport/fmt_fwd_parse_errors/strongly-crisp-donkey

This pull request was automerged via backport-assistant
backport/update/integration-script-commands/apparently-strong-pug
hc-github-team-packer 2 years ago committed by GitHub
commit ca098bc5dd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -177,3 +177,18 @@ func Test_fmt_pipe(t *testing.T) {
})
}
}
const malformedTemplate = "test-fixtures/fmt_errs/malformed.pkr.hcl"
func TestFmtParseError(t *testing.T) {
p := helperCommand(t, "fmt", malformedTemplate)
outs, err := p.CombinedOutput()
if err == nil {
t.Errorf("Expected failure to format file, but command did not fail")
}
strLogs := string(outs)
if !strings.Contains(strLogs, "An argument or block definition is required here.") {
t.Errorf("Expected some diags about parse error, found none")
}
}

@ -0,0 +1,14 @@
variable "region" {
type =string
}
invalid
source "amazon-ebs" "example" {
region = var.region
}
build {
sources = ["source.amazon-ebs.example"]
}

@ -12,6 +12,7 @@ import (
"path/filepath"
"strings"
"github.com/hashicorp/go-multierror"
"github.com/hashicorp/hcl/v2"
"github.com/hashicorp/hcl/v2/hclparse"
"github.com/hashicorp/hcl/v2/hclwrite"
@ -135,7 +136,7 @@ func (f *HCL2Formatter) processFile(filename string) ([]byte, error) {
_, diags := f.parser.ParseHCL(inSrc, filename)
if diags.HasErrors() {
return nil, fmt.Errorf("failed to parse HCL %s", filename)
return nil, multierror.Append(nil, diags.Errs()...)
}
outSrc := hclwrite.Format(inSrc)

Loading…
Cancel
Save