task icon indicating copy to clipboard operation
task copied to clipboard

Fix and modify requires behavior.

Open trulede opened this issue 8 months ago • 1 comments

Fix and modify the behavior of requires.

Fixes #1676 (discussion #1620) Modifies/updates #1204

Requires was not working in the case that a variable was set to nil (see discussion/issue).

Additional, the behavior of requires is modified so that an zero length (empty) string value fails the required check. In more complex use cases, with sub-tasks and variable templates, the expectation is that requires will ensure that a variable is set to something. In such cases, an empty string is not considered as something and so the feature is not useful.

An alternative would be to have a way to set a variable value to nil via the template mechanism.

The change is tested with the following taskfile (modified from the original discussion).

version: "3"

silent: true

vars:
  IMAGE_NAME: my-web-app
  CONTAINER_REGISTRY: 
  # CONTAINER_REGISTRY: # comment
  # CONTAINER_REGISTRY: ''
  # CONTAINER_REGISTRY: ' '

tasks:
  check-missing:
    desc: Test the task variables
    requires:
      vars: [CONTAINER_REGISTRY]
    cmds:
      - echo "CONTAINER_REGISTRY is {{spew .CONTAINER_REGISTRY}}"

trulede avatar Jun 01 '24 11:06 trulede