1
0
mirror of https://github.com/go-task/task.git synced 2025-02-09 13:47:06 +02:00

Fix "=" not being reconized in variables/environment variables

Fixes #19
This commit is contained in:
Andrey Nering 2017-03-25 11:01:44 -03:00
parent c2773a7287
commit 0db3e9a05d
3 changed files with 18 additions and 14 deletions

View File

@ -57,6 +57,7 @@ func TestVars(t *testing.T) {
{"bar.txt", "bar"},
{"foo2.txt", "foo2"},
{"bar2.txt", "bar2"},
{"equal.txt", "foo=bar"},
}
for _, f := range files {

View File

@ -2,11 +2,18 @@ default:
deps: [hello]
hello:
deps: [set-equal]
cmds:
- echo {{.FOO}} > foo.txt
- echo {{.BAR}} > bar.txt
- echo {{.FOO2}} > foo2.txt
- echo {{.BAR2}} > bar2.txt
- echo {{.EQUAL}} > equal.txt
vars:
FOO: foo
BAR: $echo bar
set-equal:
set: EQUAL
cmds:
- echo foo=bar

View File

@ -97,21 +97,17 @@ func ReplaceVariables(initial string, vars map[string]string) (string, error) {
// GetEnvironmentVariables returns environment variables as map
func getEnvironmentVariables() map[string]string {
type getKeyValFunc func(item string) (key, val string)
getEnvironment := func(data []string, getKeyVal getKeyValFunc) map[string]string {
items := make(map[string]string)
for _, item := range data {
key, val := getKeyVal(item)
items[key] = val
}
return items
var (
env = os.Environ()
m = make(map[string]string, len(env))
)
for _, e := range env {
keyVal := strings.SplitN(e, "=", 2)
key, val := keyVal[0], keyVal[1]
m[key] = val
}
return getEnvironment(os.Environ(), func(item string) (key, val string) {
splits := strings.Split(item, "=")
key = splits[0]
val = splits[1]
return
})
return m
}
func readTaskvarsFile() (map[string]string, error) {