#compdef task # Listing commands from Taskfile.yml function __list() { local -a scripts if [ -f Taskfile.yml ]; then scripts=($(task -l | sed '1d' | sed 's/^\* //' | awk '{ print $1 }' | sed 's/:$//' | sed 's/:/\\:/')) _describe 'script' scripts fi } _arguments \ '(-d --dir)'{-d,--dir}': :_files' \ '(--dry)'--dry \ '(-f --force)'{-f,--force} \ '(-i --init)'{-i,--init} \ '(-l --list)'{-l,--list} \ '(-s --silent)'{-s,--silent} \ '(--status)'--status \ '(-v --verbose)'{-v,--verbose} \ '(--version)'--version \ '(-w --watch)'{-w,--watch} \ '(- *)'{-h,--help} \ '*: :__list' \