mirror of
https://github.com/go-task/task.git
synced 2025-04-27 12:32:25 +02:00
fix: handle int and float env variable by converting them to string (#1641)
This commit is contained in:
parent
78a69c4c3e
commit
3397f2855f
16
internal/env/env.go
vendored
16
internal/env/env.go
vendored
@ -13,19 +13,25 @@ func Get(t *ast.Task) []string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
environ := os.Environ()
|
environ := os.Environ()
|
||||||
|
|
||||||
for k, v := range t.Env.ToCacheMap() {
|
for k, v := range t.Env.ToCacheMap() {
|
||||||
str, isString := v.(string)
|
if !isTypeAllowed(v) {
|
||||||
if !isString {
|
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, alreadySet := os.LookupEnv(k); alreadySet {
|
if _, alreadySet := os.LookupEnv(k); alreadySet {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
environ = append(environ, fmt.Sprintf("%s=%v", k, v))
|
||||||
environ = append(environ, fmt.Sprintf("%s=%s", k, str))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return environ
|
return environ
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isTypeAllowed(v any) bool {
|
||||||
|
switch v.(type) {
|
||||||
|
case string, int, float32, float64:
|
||||||
|
return true
|
||||||
|
default:
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -103,6 +103,7 @@ func TestEnv(t *testing.T) {
|
|||||||
Files: map[string]string{
|
Files: map[string]string{
|
||||||
"local.txt": "GOOS='linux' GOARCH='amd64' CGO_ENABLED='0'\n",
|
"local.txt": "GOOS='linux' GOARCH='amd64' CGO_ENABLED='0'\n",
|
||||||
"global.txt": "FOO='foo' BAR='overriden' BAZ='baz'\n",
|
"global.txt": "FOO='foo' BAR='overriden' BAZ='baz'\n",
|
||||||
|
"multiple_type.txt": "FOO='1' BAR='' BAZ='1.1'\n",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
tt.Run(t)
|
tt.Run(t)
|
||||||
|
9
testdata/env/Taskfile.yml
vendored
9
testdata/env/Taskfile.yml
vendored
@ -14,6 +14,7 @@ tasks:
|
|||||||
cmds:
|
cmds:
|
||||||
- task: local
|
- task: local
|
||||||
- task: global
|
- task: global
|
||||||
|
- task: multiple_type
|
||||||
|
|
||||||
local:
|
local:
|
||||||
vars:
|
vars:
|
||||||
@ -31,3 +32,11 @@ tasks:
|
|||||||
BAR: overriden
|
BAR: overriden
|
||||||
cmds:
|
cmds:
|
||||||
- echo "FOO='$FOO' BAR='$BAR' BAZ='$BAZ'" > global.txt
|
- echo "FOO='$FOO' BAR='$BAR' BAZ='$BAZ'" > global.txt
|
||||||
|
|
||||||
|
multiple_type:
|
||||||
|
env:
|
||||||
|
FOO: 1
|
||||||
|
BAR: true
|
||||||
|
BAZ: 1.1
|
||||||
|
cmds:
|
||||||
|
- echo "FOO='$FOO' BAR='$BAR' BAZ='$BAZ'" > multiple_type.txt
|
||||||
|
Loading…
x
Reference in New Issue
Block a user