2018-11-28 12:06:46 +03:00

76 lines
2.0 KiB
Plaintext

#compdef timer
_timer() {
typeset -A opt_args
_arguments \
'1: :->command' \
'2: :->arg1' \
'3: :->arg2' \
'4: :->arg3'
case "$state" in
(command)
# Commands
_arguments '1:commands:(start stop report stats deadline archive unarch refresh timesheet help)'
;;
(arg1)
# Command argument 1
case $words[2] in
(start|archive|stats)
compadd $(timer tasklist)
;;
(report|timesheet)
compadd day week month $(timer tasklist)
;;
(deadline)
compadd set clear all $(timer deadlist)
;;
(unarch)
compadd $(timer archlist)
esac
;;
(arg2)
# Command argument 2
case $words[2] in
(report|timesheet)
case $words[3] in
(day)
compadd $(date +"%Y-%m-%d")
;;
(week)
compadd $(date +"%Y-%m-%d")
;;
(month)
compadd $(date +"%Y-%m-%d")
;;
esac
;;
(deadline)
case $words[3] in
(set)
compadd $(timer tasklist) $(date +"%Y-%m-%d")
;;
(clear)
compadd $(timer deadlist)
;;
esac
;;
esac
;;
(arg3)
# Command argument 3
if [ "$words[2]" = "deadline" ]
then
compadd $(date +"%Y-%m-%d")
fi
;;
esac
}
_timer "$@"