// nounAddVariableDeps updates the dependencies of a noun given // a set of associated variable values func nounAddVariableDeps( g *depgraph.Graph, n *depgraph.Noun, vars map[string]config.InterpolatedVariable, removeSelf bool) { for _, v := range vars { // Only resource variables impose dependencies rv, ok := v.(*config.ResourceVariable) if !ok { continue } // Find the target target := g.Noun(rv.ResourceId()) if target == nil { continue } // If we're ignoring self-references, then don't add that // dependency. if removeSelf && n == target { continue } // Build the dependency dep := &depgraph.Dependency{ Name: rv.ResourceId(), Source: n, Target: target, } n.Deps = append(n.Deps, dep) } }