in internal/meta/hcl_edit.go [41:64]
func hclBlockAppendLifecycle(body *hclwrite.Body, ignoreChanges []string) error {
srcs := map[string][]byte{}
if len(ignoreChanges) > 0 {
for i := range ignoreChanges {
ignoreChanges[i] = ignoreChanges[i] + ","
}
srcs["ignore_changes"] = []byte("ignore_changes = [\n" + strings.Join(ignoreChanges, "\n") + "\n]\n")
}
if len(srcs) == 0 {
return nil
}
b := hclwrite.NewBlock("lifecycle", nil)
for name, src := range srcs {
expr, diags := hclwrite.ParseConfig(src, "f", hcl.InitialPos)
if diags.HasErrors() {
return fmt.Errorf(`building "lifecycle.%s" attribute: %s`, name, diags.Error())
}
b.Body().SetAttributeRaw(name, expr.Body().GetAttribute(name).Expr().BuildTokens(nil))
}
body.AppendBlock(b)
return nil
}