in internal/meta/hcl_edit.go [13:39]
func hclBlockAppendDependency(body *hclwrite.Body, deps []Dependency, cfgset map[string]ConfigInfo) error {
dependencies := []string{}
for _, dep := range deps {
if len(dep.Candidates) > 1 {
var candidateIds []string
for _, id := range dep.Candidates {
cfg := cfgset[id]
candidateIds = append(candidateIds, cfg.TFAddr.String())
}
dependencies = append(dependencies, fmt.Sprintf("# One of %s (can't auto-resolve as their ids are identical)", strings.Join(candidateIds, ",")))
continue
}
cfg := cfgset[dep.Candidates[0]]
dependencies = append(dependencies, cfg.TFAddr.String()+",")
}
if len(dependencies) > 0 {
src := []byte("depends_on = [\n" + strings.Join(dependencies, "\n") + "\n]")
expr, diags := hclwrite.ParseConfig(src, "f", hcl.InitialPos)
if diags.HasErrors() {
return fmt.Errorf(`building "depends_on" attribute: %s`, diags.Error())
}
body.SetAttributeRaw("depends_on", expr.Body().GetAttribute("depends_on").Expr().BuildTokens(nil))
}
return nil
}