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  }