@@ -15,6 +15,7 @@ import (
15
15
var replacer * strings.Replacer
16
16
var tf_file_ext = "*.tf"
17
17
var var_prefix = "var."
18
+ var dst_file = "./variables.tf"
18
19
var varTemplate = template .Must (template .New ("var_file" ).Parse (`{{range .}}
19
20
variable "{{ . }}" {
20
21
description = ""
@@ -41,6 +42,12 @@ func init() {
41
42
)
42
43
}
43
44
45
+ func checkError (e error ) {
46
+ if e != nil {
47
+ log .Fatal (e )
48
+ }
49
+ }
50
+
44
51
func containsElement (slice []string , value string ) bool {
45
52
if len (slice ) == 0 {
46
53
return false
@@ -55,14 +62,15 @@ func containsElement(slice []string, value string) bool {
55
62
56
63
func getAllFiles (ext string ) ([]string , error ) {
57
64
dir , err := os .Getwd ()
58
- if err != nil {
59
- log .Fatal (err )
60
- }
65
+ checkError (err )
61
66
var files []string
62
67
log .Infof ("Finding files in %q directory" , dir )
63
68
files , err = filepath .Glob (tf_file_ext )
64
- if err != nil {
65
- log .Fatal (err )
69
+ checkError (err )
70
+
71
+ if len (files ) == 0 {
72
+ log .Infof ("No files with .tf extensions found in %q" , dir )
73
+ os .Exit (0 )
66
74
}
67
75
return files , nil
68
76
}
@@ -80,11 +88,20 @@ func (t *TerraformVars) matchVarPref(row, var_prefix string) {
80
88
}
81
89
}
82
90
91
+ func fileExists (name string ) bool {
92
+ if _ , err := os .Stat (name ); err == nil {
93
+ return true
94
+ }
95
+ return false
96
+ }
97
+
83
98
func main () {
84
- tf_files , err := getAllFiles (tf_file_ext )
85
- if err != nil {
86
- log .Fatal (err )
99
+ if fileExists (dst_file ) {
100
+ log .Warnf ("File %q already exists, please remove it or it will be overridden" , dst_file )
87
101
}
102
+
103
+ tf_files , err := getAllFiles (tf_file_ext )
104
+ checkError (err )
88
105
var wg sync.WaitGroup
89
106
messages := make (chan string )
90
107
wg .Add (len (tf_files ))
@@ -107,8 +124,10 @@ func main() {
107
124
}
108
125
}()
109
126
wg .Wait ()
110
- err = varTemplate .Execute (os .Stdout , t .Variables )
111
- if err != nil {
112
- log .Fatal (err )
113
- }
127
+ f , err := os .Create (dst_file )
128
+ checkError (err )
129
+
130
+ err = varTemplate .Execute (f , t .Variables )
131
+ checkError (err )
132
+
114
133
}
0 commit comments