command/fmt: Ensure all variable files ending in .pkrvars.hcl get formatted (#10377)

Before change
```
⇶  packer fmt -check /tmp/unformatted.pkrvars.hcl
Error: Cannot tell whether /tmp/unformatted.pkrvars.hcl contains HCL2 configuration data

⇶  echo $?
1
```

After fix
```
⇶  packer fmt -check /tmp/unformatted.pkrvars.hcl
/tmp/unformatted.pkrvars.hcl

⇶  echo $?
3

⇶  packer fmt -check command/test-fixtures/fmt
command/test-fixtures/fmt/unformatted.pkr.hcl
command/test-fixtures/fmt/unformatted.auto.pkrvars.hcl
command/test-fixtures/fmt/unformatted.pkrvars.hcl

```
This commit is contained in:
Wilken Rivera
2020-12-14 10:29:58 -05:00
committed by GitHub
parent 889e42443a
commit 4e58987026
11 changed files with 94 additions and 7 deletions
+1 -1
View File
@@ -72,7 +72,7 @@ func (*FormatCommand) Help() string {
Usage: packer fmt [options] [TEMPLATE]
Rewrites all Packer configuration files to a canonical format. Both
configuration files (.pkr.hcl) and variable files (.pkrvars) are updated.
configuration files (.pkr.hcl) and variable files (.pkrvars.hcl) are updated.
JSON files (.json) are not modified.
If TEMPATE is "." the current directory will be used. The given content must
+52
View File
@@ -0,0 +1,52 @@
package command
import (
"path/filepath"
"strings"
"testing"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
"github.com/stretchr/testify/assert"
)
func TestFmt(t *testing.T) {
s := &strings.Builder{}
ui := &packersdk.BasicUi{
Writer: s,
}
c := &FormatCommand{
Meta: testMeta(t),
}
c.Ui = ui
args := []string{"-check=true", filepath.Join(testFixture("fmt"), "formatted.pkr.hcl")}
if code := c.Run(args); code != 0 {
fatalCommand(t, c.Meta)
}
expected := ""
assert.Equal(t, expected, strings.TrimSpace(s.String()))
}
func TestFmt_unformattedPKRVarsTemplate(t *testing.T) {
c := &FormatCommand{
Meta: testMeta(t),
}
args := []string{"-check=true", filepath.Join(testFixture("fmt"), "unformatted.pkrvars.hcl")}
if code := c.Run(args); code != 3 {
fatalCommand(t, c.Meta)
}
}
func TestFmt_unfomattedTemlateDirectory(t *testing.T) {
c := &FormatCommand{
Meta: testMeta(t),
}
args := []string{"-check=true", filepath.Join(testFixture("fmt"), "")}
if code := c.Run(args); code != 3 {
fatalCommand(t, c.Meta)
}
}
@@ -0,0 +1,7 @@
source "null" "example" {
communicator = "none"
}
build {
sources = ["source.null.example"]
}
@@ -0,0 +1 @@
region ="us-west-2"
@@ -0,0 +1,11 @@
variable "region" {
type =string
}
source "amazon-ebs" "example" {
region = var.region
}
build {
sources = ["source.amazon-ebs.example"]
}
@@ -0,0 +1,3 @@
ami_filter_name ="amzn2-ami-hvm-*-x86_64-gp2"
ami_filter_owners =[ "137112412989" ]