zsh/compdef/_jpptodo
2013-03-15 08:39:43 +01:00

71 lines
1.1 KiB
Plaintext

#compdef jpptodo
typeset -A opt_args
local context state line
_jpp_find_todo_path() {
local todopath=$PWD
while true; do
[ -e "$todopath/TODO" ] && break;
[ "$todopath" = "/" ] && todopath=$PWD && break;
todopath=$(realpath "$todopath/..")
done
echo $todopath
}
_jpp_snums() {
local todopath=$(_jpp_find_todo_path)
[ -e "$todopath/TODO" ] || return;
_values -w 'S-Nummern' \
$(awk "$1"'{ printf "%s ", $1 }' $todopath/TODO)
}
_jpp_done() {
case "$state" in
arg2)
_values -w -s ' ' 'Aufgaben' \
'1[Model]' \
'2[Verwaltung]' \
'3[Import Export]' \
'4[Generierung]' \
'5[GUI]' \
'(1 2 3 4 5)all[Alle]'
;;
*)
_jpp_snums "/\s0\s/"
;;
esac
}
_jpptodo() {
_arguments "1:Commands:->commands" \
"2: :->arg1" \
"*: :->arg2" \
case "$state" in
commands)
_arguments '1:Commands:(new done todo lock run unlock)'\
'-o[offline mode]' \
'-d[debug]'
;;
*)
case $words[2] in
lock)
_jpp_snums "/open$/"
;;
unlock)
_jpp_snums "!/open$/"
;;
done)
_jpp_done
;;
run)
_jpp_snums
;;
esac
;;
esac
}
_jpptodo "$@"