forked from gruntwork-io/terragrunt
-
Notifications
You must be signed in to change notification settings - Fork 2
/
extension_extra_args.go
45 lines (37 loc) · 1.6 KB
/
extension_extra_args.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
package config
import (
"fmt"
"strings"
)
// TerraformExtraArguments sets a list of arguments to pass to Terraform if command fits any in the `Commands` list
type TerraformExtraArguments struct {
TerragruntExtensionBase `hcl:",squash"`
Arguments []string `hcl:"arguments"`
Vars []string `hcl:"vars"`
RequiredVarFiles []string `hcl:"required_var_files"`
OptionalVarFiles []string `hcl:"optional_var_files"`
Commands []string `hcl:"commands"`
}
func (item TerraformExtraArguments) itemType() (result string) {
return TerraformExtraArgumentsList{}.argName()
}
func (item TerraformExtraArguments) help() (result string) {
if item.Description != "" {
result += fmt.Sprintf("\n%s\n", item.Description)
}
if item.Commands != nil {
result += fmt.Sprintf("\nApplies on the following command(s): %s\n", strings.Join(item.Commands, ", "))
}
if item.Arguments != nil {
result += fmt.Sprintf("\nAutomatically add the following parameter(s): %s\n", strings.Join(item.Arguments, ", "))
}
return
}
// ----------------------- TerraformExtraArgumentsList -----------------------
//go:generate genny -in=extension_base_list.go -out=generated_extra_args.go gen "GenericItem=TerraformExtraArguments"
func (list TerraformExtraArgumentsList) argName() string { return "extra_arguments" }
func (list TerraformExtraArgumentsList) sort() TerraformExtraArgumentsList { return list }
// Merge elements from an imported list to the current list
func (list *TerraformExtraArgumentsList) Merge(imported TerraformExtraArgumentsList) {
list.merge(imported, mergeModePrepend, list.argName())
}