Skip to content

Commit ed5fe56

Browse files
committed
Improved logic
1 parent 6d08770 commit ed5fe56

File tree

1 file changed

+31
-12
lines changed

1 file changed

+31
-12
lines changed

main.go

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
var replacer *strings.Replacer
1616
var tf_file_ext = "*.tf"
1717
var var_prefix = "var."
18+
var dst_file = "./variables.tf"
1819
var varTemplate = template.Must(template.New("var_file").Parse(`{{range .}}
1920
variable "{{ . }}" {
2021
description = ""
@@ -41,6 +42,12 @@ func init() {
4142
)
4243
}
4344

45+
func checkError(e error) {
46+
if e != nil {
47+
log.Fatal(e)
48+
}
49+
}
50+
4451
func containsElement(slice []string, value string) bool {
4552
if len(slice) == 0 {
4653
return false
@@ -55,14 +62,15 @@ func containsElement(slice []string, value string) bool {
5562

5663
func getAllFiles(ext string) ([]string, error) {
5764
dir, err := os.Getwd()
58-
if err != nil {
59-
log.Fatal(err)
60-
}
65+
checkError(err)
6166
var files []string
6267
log.Infof("Finding files in %q directory", dir)
6368
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)
6674
}
6775
return files, nil
6876
}
@@ -80,11 +88,20 @@ func (t *TerraformVars) matchVarPref(row, var_prefix string) {
8088
}
8189
}
8290

91+
func fileExists(name string) bool {
92+
if _, err := os.Stat(name); err == nil {
93+
return true
94+
}
95+
return false
96+
}
97+
8398
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)
87101
}
102+
103+
tf_files, err := getAllFiles(tf_file_ext)
104+
checkError(err)
88105
var wg sync.WaitGroup
89106
messages := make(chan string)
90107
wg.Add(len(tf_files))
@@ -107,8 +124,10 @@ func main() {
107124
}
108125
}()
109126
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+
114133
}

0 commit comments

Comments
 (0)