mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-07-11 04:41:32 +02:00
77 lines
1.7 KiB
Text
77 lines
1.7 KiB
Text
#compdef twidge
|
|
## completion for twidge 1.0.8, based on twidge(1)
|
|
|
|
function _twidge_command {
|
|
typeset -a twidge_commands
|
|
typeset -i skip=1
|
|
|
|
twidge lscommands | while read cmd desc; do
|
|
if [[ $cmd == ---* ]] {
|
|
skip=0
|
|
continue
|
|
}
|
|
if (( skip )) {
|
|
continue
|
|
}
|
|
twidge_commands+="${cmd}:${desc}"
|
|
done
|
|
|
|
_describe command twidge_commands
|
|
}
|
|
|
|
function _twidge_args {
|
|
typeset -a args_common args_more args_other args_update
|
|
|
|
args_common=(
|
|
'(-a --all)'{-a,--all}'[receive all content]'
|
|
'(-e --exec)'{-e,--exec}'[execute command for each retrieved item]:command'
|
|
'(-l --long)'{-l,--long}'[long output format]'
|
|
'(-m --mailto)'{-m,--mailto}'[mail retrieved items]:mail address'
|
|
)
|
|
|
|
args_more=(
|
|
'(-s --saveid)'{-s,--saveid}'[save ID of most recent message]'
|
|
'(-u --unseen)'{-u,--unseen}'[only show unseen messages]'
|
|
)
|
|
|
|
args_other=(
|
|
'(-U --username)'{-U,--username}'[show updates of different user]:username'
|
|
)
|
|
|
|
args_update=(
|
|
'(-i --inreplyto)'{-i,--inreplyto}'[update in reply to a message]:message id'
|
|
'(-i --inreplyto 1)-r[read RFC2822 Mail]'
|
|
':status'
|
|
)
|
|
|
|
case ${words[1]} in
|
|
lsarchive)
|
|
_arguments $args_common $args_more $args_other
|
|
;;
|
|
ls(dm(|archive)|recent|replies|rt(|archive|replies)))
|
|
_arguments $args_common $args_more
|
|
;;
|
|
lsfollow(ers|ing))
|
|
_arguments $args_common :username
|
|
;;
|
|
dmsend)
|
|
_arguments :recipient :status
|
|
;;
|
|
(un|)follow)
|
|
_message username
|
|
;;
|
|
update)
|
|
_arguments $args_update
|
|
;;
|
|
esac
|
|
}
|
|
|
|
function _twidge {
|
|
_arguments \
|
|
'(-c --config)'{-c,--config}'[config file]:file:_files' \
|
|
'(-d --debug)'{-d,--debug}'[enable debugging output]' \
|
|
'(-): :_twidge_command' \
|
|
'(-)*:: :_twidge_args'
|
|
}
|
|
|
|
_twidge "$@"
|