Browse Source

eval env vars

pull/118/head
Meir Gabay 5 years ago
parent
commit
a8cf783874
  1. 26
      plugin.go

26
plugin.go

@ -372,9 +372,35 @@ func getTfoutPath() string {
return fmt.Sprintf("%s.plan.tfout", terraformDataDir)
}
func getStrBetween(value string, a string, b string) string {
// Get substring between two strings.
posFirst := strings.Index(value, a)
if posFirst == -1 {
return ""
}
posLast := strings.Index(value, b)
if posLast == -1 {
return ""
}
posFirstAdjusted := posFirst + len(a)
if posFirstAdjusted >= posLast {
return ""
}
return value[posFirstAdjusted:posLast]
}
func vars(vs map[string]string) []string {
var args []string
for k, v := range vs {
isEnvVar, err := regexp.Match(`^\${.*}$`, []byte(v))
if err != nil {
fmt.Println(err)
}
if isEnvVar {
envVarName := getStrBetween(v, "${", "}")
v = os.Getenv(envVarName)
fmt.Println(v)
}
args = append(args, "-var", fmt.Sprintf("%s=%s", k, v))
}
return args

Loading…
Cancel
Save