diff --git a/filter/awsv4upgrade/aws_s3_bucket.go b/filter/awsv4upgrade/aws_s3_bucket.go index cb30929..6250d9e 100644 --- a/filter/awsv4upgrade/aws_s3_bucket.go +++ b/filter/awsv4upgrade/aws_s3_bucket.go @@ -1,6 +1,7 @@ package awsv4upgrade import ( + "github.com/hashicorp/hcl/v2" "github.com/hashicorp/hcl/v2/hclwrite" "github.com/minamijoyo/hcledit/editor" ) @@ -61,3 +62,12 @@ func appendNewResourceBlock(body *hclwrite.Body, resourceType string, resourceNa body.AppendNewline() return body.AppendNewBlock("resource", []string{resourceType, resourceName}) } + +// setBucketArgument is a helper method for setting a bucket argument to the given block. +func setBucketArgument(block *hclwrite.Block, resourceName string) *hclwrite.Attribute { + return block.Body().SetAttributeTraversal("bucket", hcl.Traversal{ + hcl.TraverseRoot{Name: "aws_s3_bucket"}, + hcl.TraverseAttr{Name: resourceName}, + hcl.TraverseAttr{Name: "id"}, + }) +} diff --git a/filter/awsv4upgrade/aws_s3_bucket_acl.go b/filter/awsv4upgrade/aws_s3_bucket_acl.go index 59bc2de..fda4c4f 100644 --- a/filter/awsv4upgrade/aws_s3_bucket_acl.go +++ b/filter/awsv4upgrade/aws_s3_bucket_acl.go @@ -1,7 +1,6 @@ package awsv4upgrade import ( - "github.com/hashicorp/hcl/v2" "github.com/hashicorp/hcl/v2/hclwrite" "github.com/minamijoyo/hcledit/editor" "github.com/zclconf/go-cty/cty" @@ -30,11 +29,7 @@ func (f *AWSS3BucketACLFilter) Filter(inFile *hclwrite.File) (*hclwrite.File, er resourceName := getResourceName(block) newblock := appendNewResourceBlock(inFile.Body(), "aws_s3_bucket_acl", resourceName) - newblock.Body().SetAttributeTraversal("bucket", hcl.Traversal{ - hcl.TraverseRoot{Name: "aws_s3_bucket"}, - hcl.TraverseAttr{Name: resourceName}, - hcl.TraverseAttr{Name: "id"}, - }) + setBucketArgument(newblock, resourceName) newblock.Body().SetAttributeValue("acl", cty.StringVal("private")) block.Body().RemoveAttribute("acl") } diff --git a/filter/awsv4upgrade/aws_s3_bucket_logging.go b/filter/awsv4upgrade/aws_s3_bucket_logging.go index 1835bbf..6859d59 100644 --- a/filter/awsv4upgrade/aws_s3_bucket_logging.go +++ b/filter/awsv4upgrade/aws_s3_bucket_logging.go @@ -1,7 +1,6 @@ package awsv4upgrade import ( - "github.com/hashicorp/hcl/v2" "github.com/hashicorp/hcl/v2/hclwrite" "github.com/minamijoyo/hcledit/editor" ) @@ -30,11 +29,7 @@ func (f *AWSS3BucketLoggingFilter) Filter(inFile *hclwrite.File) (*hclwrite.File resourceName := getResourceName(block) newblock := appendNewResourceBlock(inFile.Body(), "aws_s3_bucket_logging", resourceName) - newblock.Body().SetAttributeTraversal("bucket", hcl.Traversal{ - hcl.TraverseRoot{Name: "aws_s3_bucket"}, - hcl.TraverseAttr{Name: resourceName}, - hcl.TraverseAttr{Name: "id"}, - }) + setBucketArgument(newblock, resourceName) newblock.Body().AppendUnstructuredTokens(nested.Body().BuildTokens(nil)) block.Body().RemoveBlock(nested) }