in pkg/mptf_block.go [13:40]
func decodeAsStringBlock(dest *hclwrite.Block, src *golden.HclBlock, depth int, context *hcl.EvalContext) error {
for n, attribute := range src.Attributes() {
value, err := attribute.Value(context)
if err != nil {
return err
}
valueType := value.Type()
if valueType != cty.String {
value, err = convert.Convert(value, cty.String)
if err != nil {
return fmt.Errorf("cannot convert value to string, got: %s", valueType.FriendlyName())
}
}
tokens, err := stringToHclWriteTokens(value.AsString())
if err != nil {
return err
}
dest.Body().SetAttributeRaw(n, tokens)
}
for _, b := range src.NestedBlocks() {
blockType := b.Type
newNestedBlock := dest.Body().AppendNewBlock(blockType, b.Labels)
if err := decodeAsStringBlock(newNestedBlock, b, depth+1, context); err != nil {
return err
}
}
return nil
}