forked from getlunaform/go-terraform
-
Notifications
You must be signed in to change notification settings - Fork 1
/
action_init.go
100 lines (77 loc) · 1.87 KB
/
action_init.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package goterraform
import "strconv"
type TerraformInitParams struct {
Backend *bool
BackendConfig string
ForceCopy bool
FromModule string
Get *bool
GetPlugins *bool
Input *bool
Lock *bool
LockTimeout int
NoColor bool
PluginDir string
Reconfigure bool
Upgrade *bool
VerifyPlugins *bool
}
func NewTerraformInitParams() *TerraformInitParams {
return &TerraformInitParams{}
}
func (p *TerraformInitParams) Opts() map[string][]string {
opts := make(map[string][]string)
if p.Backend != nil && *p.Backend == false {
opts["backend"] = []string{"false"}
}
if p.BackendConfig != "" {
opts["backend-config"] = []string{p.BackendConfig}
}
if p.ForceCopy {
opts["force-copy"] = []string{""}
}
if p.FromModule != "" {
opts["from-module"] = []string{p.FromModule}
}
if p.Get != nil && *p.Get == false {
opts["get"] = []string{"false"}
}
if p.GetPlugins != nil && *p.GetPlugins == false {
opts["get-plugins"] = []string{"false"}
}
if p.Input != nil && *p.Input == false {
opts["input"] = []string{"false"}
}
if p.Lock != nil {
if *p.Lock == true {
opts["lock"] = []string{"true"}
} else {
opts["lock"] = []string{"false"}
}
}
if p.LockTimeout != 0 {
opts["lock-timeout"] = []string{strconv.Itoa(p.LockTimeout) + "s"}
}
if p.NoColor {
opts["no-color"] = []string{""}
}
if p.PluginDir != "" {
opts["plugin-dir"] = []string{p.PluginDir}
}
if p.Reconfigure {
opts["reconfigure"] = []string{""}
}
if p.Upgrade != nil && *p.Upgrade == true {
opts["upgrade"] = []string{"true"}
}
if p.VerifyPlugins != nil && *p.VerifyPlugins == false {
opts["verify-plugins"] = []string{"false"}
}
return opts
}
func (p *TerraformInitParams) OptsString() string {
return extractOptsString(p)
}
func (p *TerraformInitParams) OptsStringSlice() []string {
return extractOptsStringSlice(p)
}