mirror of
https://github.com/go-task/task.git
synced 2026-06-30 16:14:19 +00:00
fix: cli variables should take priority over aaskfile defaults (#2589)
When using `task FOO=bar` with a Taskfile containing
`FOO: '{{.FOO | default "foo"}}'`, the CLI value was being
overwritten by the Taskfile default.
Split the variable merging into two steps:
1. Merge CLI variables (FOO=bar) first so they override Taskfile vars
2. ReverseMerge special variables (CLI_ARGS, CLI_FORCE, etc.) so
they're available for templating in Taskfile vars
Fixes regression introduced in #2403.
Co-authored-by: Timothy Rule <timothy.rule@gmail.com>
This commit is contained in:
7
testdata/vars/Taskfile.yml
vendored
7
testdata/vars/Taskfile.yml
vendored
@@ -49,3 +49,10 @@ tasks:
|
||||
- echo "{{.MESSAGE}}"
|
||||
|
||||
from-dot-env: echo '{{.DOT_ENV_VAR}}'
|
||||
|
||||
# Test that CLI variables take priority over Taskfile defaults
|
||||
cli-var-priority:
|
||||
vars:
|
||||
CLI_VAR: '{{.CLI_VAR | default "default_value"}}'
|
||||
cmds:
|
||||
- echo '{{.CLI_VAR}}'
|
||||
|
||||
1
testdata/vars/testdata/TestVars-cli-var-priority-default.golden
vendored
Normal file
1
testdata/vars/testdata/TestVars-cli-var-priority-default.golden
vendored
Normal file
@@ -0,0 +1 @@
|
||||
default_value
|
||||
1
testdata/vars/testdata/TestVars-cli-var-priority-override.golden
vendored
Normal file
1
testdata/vars/testdata/TestVars-cli-var-priority-override.golden
vendored
Normal file
@@ -0,0 +1 @@
|
||||
from_cli
|
||||
Reference in New Issue
Block a user