task
task copied to clipboard
CLI_ARGS is not available in top-level vars
I cannot use CLI_ARGS in the top-level vars: section to prepare some other variables:
vars:
Host:
sh: echo "{{.CLI_ARGS}}" | sed 's/,.*//g;s/ .*//g'
Due to this oversight, I have to put the above code in every task.
- Task version: 3.23.0
- Operating System: macOS 12.6.2
Thanks for the wonderful program!
I am seeing this too. It is also not available in the tasks's env: section
Here is some test code:
version: '3'
vars:
GLOBAL_VAR: '{{.CLI_ARGS}}'
GLOBAL_VAR_DYN:
sh: echo '{{.CLI_ARGS}}'
env:
GLOBAL_ENV: '{{.CLI_ARGS}}'
GLOBAL_ENV_DYN:
sh: echo '{{.CLI_ARGS}}'
tasks:
echo:
internal: false
vars:
TASK_VAR: '{{.CLI_ARGS}}'
TASK_VAR_DYN:
sh: echo '{{.CLI_ARGS}}'
env:
TASK_ENV: '{{.CLI_ARGS}}'
TASK_ENV_DYN:
sh: echo '{{.CLI_ARGS}}'
TASK_ENV_INDIRECT: '{{.TASK_VAR}}'
cmds:
- echo 'CLI_ARGS {{.CLI_ARGS}}'
- echo 'GLOBAL_VAR {{.GLOBAL_VAR}}'
- echo 'GLOBAL_VAR_DYN {{.GLOBAL_VAR_DYN}}'
- echo 'GLOBAL_ENV {{.GLOBAL_ENV}}'
- echo 'GLOBAL_ENV_DYN {{.GLOBAL_ENV_DYN}}'
- echo 'TASK_VAR {{.TASK_VAR}}'
- echo 'TASK_VAR_DYN {{.TASK_VAR_DYN}}'
- echo 'TASK_ENV {{.TASK_ENV}}'
- echo 'TASK_ENV_DYN {{.TASK_ENV_DYN}}'
- echo 'TASK_ENV_INDIRECT {{.TASK_ENV_INDIRECT}}'
and here is the output:
task -v echo -- --option=test argument1 argument2
task: dynamic variable: "echo ''" result: ""
task: dynamic variable: "echo ''--option=test' argument1 argument2'" result: "--option=test argument1 argument2"
task: "echo" started
task: [echo] echo 'CLI_ARGS '--option=test' argument1 argument2'
CLI_ARGS --option=test argument1 argument2
task: [echo] echo 'GLOBAL_VAR '
GLOBAL_VAR
task: [echo] echo 'GLOBAL_VAR_DYN '
GLOBAL_VAR_DYN
task: [echo] echo 'GLOBAL_ENV '
GLOBAL_ENV
task: [echo] echo 'GLOBAL_ENV_DYN '
GLOBAL_ENV_DYN
task: [echo] echo 'TASK_VAR '--option=test' argument1 argument2'
TASK_VAR --option=test argument1 argument2
task: [echo] echo 'TASK_VAR_DYN --option=test argument1 argument2'
TASK_VAR_DYN --option=test argument1 argument2
task: [echo] echo 'TASK_ENV '
TASK_ENV
task: [echo] echo 'TASK_ENV_DYN '
TASK_ENV_DYN
task: [echo] echo 'TASK_ENV_INDIRECT '
TASK_ENV_INDIRECT
task: "echo" finished