]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blobdiff - vendor/github.com/hashicorp/terraform/terraform/transform_variable.go
Initial transfer of provider code
[github/fretlink/terraform-provider-statuscake.git] / vendor / github.com / hashicorp / terraform / terraform / transform_variable.go
diff --git a/vendor/github.com/hashicorp/terraform/terraform/transform_variable.go b/vendor/github.com/hashicorp/terraform/terraform/transform_variable.go
new file mode 100644 (file)
index 0000000..b31e2c7
--- /dev/null
@@ -0,0 +1,40 @@
+package terraform
+
+import (
+       "github.com/hashicorp/terraform/config/module"
+)
+
+// RootVariableTransformer is a GraphTransformer that adds all the root
+// variables to the graph.
+//
+// Root variables are currently no-ops but they must be added to the
+// graph since downstream things that depend on them must be able to
+// reach them.
+type RootVariableTransformer struct {
+       Module *module.Tree
+}
+
+func (t *RootVariableTransformer) Transform(g *Graph) error {
+       // If no config, no variables
+       if t.Module == nil {
+               return nil
+       }
+
+       // If we have no vars, we're done!
+       vars := t.Module.Config().Variables
+       if len(vars) == 0 {
+               return nil
+       }
+
+       // Add all variables here
+       for _, v := range vars {
+               node := &NodeRootVariable{
+                       Config: v,
+               }
+
+               // Add it!
+               g.Add(node)
+       }
+
+       return nil
+}