(nodes []Node)
| 25 | ) |
| 26 | |
| 27 | func expandEnvironment(nodes []Node) []Node { |
| 28 | // If nodes is nil - don't replace with empty slice, as nil indicates "no |
| 29 | // block". |
| 30 | if nodes == nil { |
| 31 | return nil |
| 32 | } |
| 33 | |
| 34 | replacer := buildEnvReplacer() |
| 35 | newNodes := make([]Node, 0, len(nodes)) |
| 36 | for _, node := range nodes { |
| 37 | node.Name = removeUnexpandedEnvvars(replacer.Replace(node.Name)) |
| 38 | newArgs := make([]string, 0, len(node.Args)) |
| 39 | for _, arg := range node.Args { |
| 40 | newArgs = append(newArgs, removeUnexpandedEnvvars(replacer.Replace(arg))) |
| 41 | } |
| 42 | node.Args = newArgs |
| 43 | node.Children = expandEnvironment(node.Children) |
| 44 | newNodes = append(newNodes, node) |
| 45 | } |
| 46 | return newNodes |
| 47 | } |
| 48 | |
| 49 | var unixEnvvarRe = regexp.MustCompile(`{env:([^\$]+)}`) |
| 50 |
no test coverage detected