Merge pull request #25381 from hashicorp/alisdair/013upgrade-preserves-more-comments
command: Fix 0.13upgrade to preserve more comments
This commit is contained in:
commit
f6f707c669
|
@ -404,7 +404,18 @@ command and dealing with them before running this command again.
|
|||
} else {
|
||||
attributesObject = cty.EmptyObjectVal
|
||||
}
|
||||
body.SetAttributeValue(localName, attributesObject)
|
||||
// If this block already has an entry for this local name, we only
|
||||
// want to replace it if it's semantically different
|
||||
if existing := body.GetAttribute(localName); existing != nil {
|
||||
bytes := existing.Expr().BuildTokens(nil).Bytes()
|
||||
expr, _ := hclsyntax.ParseExpression(bytes, "", hcl.InitialPos)
|
||||
value, _ := expr.Value(nil)
|
||||
if !attributesObject.RawEquals(value) {
|
||||
body.SetAttributeValue(localName, attributesObject)
|
||||
}
|
||||
} else {
|
||||
body.SetAttributeValue(localName, attributesObject)
|
||||
}
|
||||
|
||||
// If we don't have a source attribute, manually construct a commented
|
||||
// block explaining what to do
|
||||
|
|
|
@ -9,8 +9,15 @@ terraform {
|
|||
source = "hashicorp/bar"
|
||||
version = "0.5.0"
|
||||
}
|
||||
# An explicit requirement
|
||||
baz = {
|
||||
# Comment inside the block should stay
|
||||
source = "foo/baz"
|
||||
}
|
||||
# Foo is required
|
||||
foo = {
|
||||
source = "hashicorp/foo"
|
||||
source = "hashicorp/foo"
|
||||
version = "1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,5 +6,15 @@ terraform {
|
|||
required_providers {
|
||||
# Pin bar to this version
|
||||
bar = "0.5.0"
|
||||
# An explicit requirement
|
||||
baz = {
|
||||
# Comment inside the block should stay
|
||||
source = "foo/baz"
|
||||
}
|
||||
# Foo is required
|
||||
foo = {
|
||||
# This comment sadly won't make it
|
||||
version = "1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue