version: '3'

dotenv: [.env]

vars:
  VAR_A: A
  VAR_B: '{{.VAR_A}}B'
  VAR_C: '{{.VAR_B}}C'

  VAR_1: {sh: echo 1}
  VAR_2: {sh: 'echo "{{.VAR_1}}2"'}
  VAR_3: {sh: 'echo "{{.VAR_2}}3"'}

tasks:
  default:
    - task: missing-var
    - task: var-order
    - task: dependent-sh
    - task: with-call
    - task: from-dot-env

  missing-var: echo '{{.NON_EXISTING_VAR}}' > missing-var.txt

  var-order:
    vars:
      VAR_D: '{{.VAR_C}}D'
      VAR_E: '{{.VAR_D}}E'
      VAR_F: '{{.VAR_E}}F'
    cmds:
      - echo '{{.VAR_F}}' > var-order.txt

  dependent-sh:
    vars:
      VAR_4: {sh: 'echo "{{.VAR_3}}4"'}
      VAR_5: {sh: 'echo "{{.VAR_4}}5"'}
      VAR_6: {sh: 'echo "{{.VAR_5}}6"'}
    cmds:
      - echo '{{.VAR_6}}' > dependent-sh.txt

  with-call:
    - task: called-task
      vars:
        ABC123: '{{.VAR_C}}{{.VAR_3}}'

  called-task:
    vars:
      MESSAGE: Hi, {{.ABC123}}!
    cmds:
      - echo "{{.MESSAGE}}" > with-call.txt

  from-dot-env: echo '{{.DOT_ENV_VAR}}' > from-dot-env.txt
