task icon indicating copy to clipboard operation
task copied to clipboard

CLI_ARGS is not available in top-level vars

Open fcwoknhenuxdfiyv opened this issue 2 years ago • 1 comments

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!

fcwoknhenuxdfiyv avatar Apr 05 '23 09:04 fcwoknhenuxdfiyv

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

jdunham22 avatar Mar 16 '24 01:03 jdunham22