diff --git a/completion/task.bash b/completion/task.bash new file mode 100644 index 00000000..88820076 --- /dev/null +++ b/completion/task.bash @@ -0,0 +1,21 @@ +_task_completion() +{ + local scripts; + local curr_arg; + + # Remove colon from work breaks + COMP_WORDBREAKS=${COMP_WORDBREAKS//:} + + scripts=$(task -l | sed '1d' | sed 's/^\* //' | awk '{ print $1 }'); + + curr_arg="${COMP_WORDS[COMP_CWORD]:-"."}" + + # Do not accept more than 1 argument + if [ "${#COMP_WORDS[@]}" != "2" ]; then + return + fi + + COMPREPLY=($(compgen -c | echo "$scripts" | grep $curr_arg)); +} + +complete -F _task_completion task