Skip to content

Support wildcards in task aliases #1900

@JackoCoolio

Description

@JackoCoolio

Including a Taskfile with wildcard tasks and aliasing it doesn't work.

Taskfile.yml:

version: '3'

includes:
  included:
    taskfile: Taskfile2.yml
    aliases: [inc]

tasks:
  foo-*:
    cmds:
      - "echo bar: {{index .MATCH 0}}"
    aliases: [f]

Taskfile2.yml

version: '3'

tasks:
  bar-*:
    cmds:
      - "echo bar: {{index .MATCH 0}}"

Output of task --list-all:

task: Available tasks for this project:
* foo-*:                      (aliases: f)
* included:bar-*:             (aliases: inc:bar-*)

That's pretty misleading, though, because trying some of the implied commands results in:

# f is a wildcard task, so it should take parameters
$ task f-hello
task: Task "f-hello" does not exist

# okay, let's just do what it says in "(aliases: f)"
$ task f
template: :1:12: executing "" at <index .MATCH 0>: error calling index: index of untyped nil

# that was even worse; what about bar in our included Taskfile?
$ task inc:bar-hello
task: Task "inc:bar-hello" does not exist
  • Task version: 3.38.0
  • Operating system: x86_64-pc-linux-gnu
  • Experiments enabled: N/A

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels
    No fields configured for feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions