github.com/Hashicorp/terraform@v0.11.12-beta1/terraform/transform_local.go (about) 1 package terraform 2 3 import ( 4 "github.com/hashicorp/terraform/config/module" 5 ) 6 7 // LocalTransformer is a GraphTransformer that adds all the local values 8 // from the configuration to the graph. 9 type LocalTransformer struct { 10 Module *module.Tree 11 } 12 13 func (t *LocalTransformer) Transform(g *Graph) error { 14 return t.transformModule(g, t.Module) 15 } 16 17 func (t *LocalTransformer) transformModule(g *Graph, m *module.Tree) error { 18 if m == nil { 19 // Can't have any locals if there's no config 20 return nil 21 } 22 23 for _, local := range m.Config().Locals { 24 node := &NodeLocal{ 25 PathValue: normalizeModulePath(m.Path()), 26 Config: local, 27 } 28 29 g.Add(node) 30 } 31 32 // Also populate locals for child modules 33 for _, c := range m.Children() { 34 if err := t.transformModule(g, c); err != nil { 35 return err 36 } 37 } 38 39 return nil 40 }