github.com/ryanslade/nomad@v0.2.4-0.20160128061903-fc95782f2089/helper/args/args.go (about) 1 package args 2 3 import "regexp" 4 5 var ( 6 envRe = regexp.MustCompile(`\$({[a-zA-Z0-9_\.]+}|[a-zA-Z0-9_\.]+)`) 7 ) 8 9 // ReplaceEnv takes an arg and replaces all occurences of environment variables. 10 // If the variable is found in the passed map it is replaced, otherwise the 11 // original string is returned. 12 func ReplaceEnv(arg string, environents ...map[string]string) string { 13 return envRe.ReplaceAllStringFunc(arg, func(arg string) string { 14 stripped := arg[1:] 15 if stripped[0] == '{' { 16 stripped = stripped[1 : len(stripped)-1] 17 } 18 19 for _, env := range environents { 20 if value, ok := env[stripped]; ok { 21 return value 22 } 23 } 24 25 return arg 26 }) 27 }