mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2025-12-12 01:52:31 +01:00
Oh-My-Zsh plugin to support Taskfile.yml completion
This commit is contained in:
parent
4c82a2eedf
commit
c08e9eb232
3 changed files with 49 additions and 0 deletions
28
plugins/taskfile/_taskfile
Normal file
28
plugins/taskfile/_taskfile
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#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
|
||||
Loading…
Add table
Add a link
Reference in a new issue