mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-19 21:41:07 +01:00
29 lines
823 B
Text
29 lines
823 B
Text
|
#compdef task
|
||
|
local state line
|
||
|
declare -A opt_args
|
||
|
|
||
|
_task_get_tasks () {
|
||
|
sed '1,/tasks:/d' Taskfile.yml | grep -iwE "^\ \ [a-z](.*)$" | sed 's/.$//' | awk '{ print $1 }'
|
||
|
while read included_task
|
||
|
do
|
||
|
taskfile_path=$(sed "1,/$included_task:/d" Taskfile.yml | grep -m 1 -iwE "^\ \ \ taskfile: .*$" | awk '{ print $2 }')
|
||
|
sed '1,/tasks:/d' $taskfile_path | grep -iwE "^\ \ [a-z](.*)$" | sed 's/.$//' | awk -v included_task="$included_task" '{ print included_task":"$1 }'
|
||
|
|
||
|
done < <(sed '1,/includes:/d' Taskfile.yml | grep -iwE "^\ \ [a-z](.*)$" | sed 's/.$//' | awk '{ print $1 }')
|
||
|
}
|
||
|
|
||
|
_taskfile () {
|
||
|
local state line
|
||
|
typeset -A opt_args
|
||
|
|
||
|
_arguments \
|
||
|
'*: :->args'
|
||
|
if [ -f Taskfile.yml ]; then
|
||
|
compadd `_task_get_tasks`
|
||
|
else
|
||
|
echo -e "\nNo taskfile found"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
compdef _taskfile t=task
|