mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-03 10:21:46 +02:00
232 lines
6.9 KiB
Text
232 lines
6.9 KiB
Text
#compdef bts
|
|
|
|
local expl first=1
|
|
|
|
_arguments -A "-*" \
|
|
'(-o --offline)'{-o,--offline}'[use cached bugs]' \
|
|
'(--online --no-offline)'{--online,--no-offline}'[do not use cached bugs]' \
|
|
'(--cache --no-cache)--cache[cache new versions of pages]' \
|
|
'(--cache --no-cache)--no-cache[do not cache new versions of pages]' \
|
|
'--cache-mode=:cache mode:(min mbox full)' \
|
|
'--cache-delay=:seconds:' \
|
|
'--mbox[open a mail reader to read the corresponding mbox]' \
|
|
'--mailreader=:reader:' \
|
|
'(-f --force-refresh)'{-f,--force-refresh}'[download bug report even if unchanged]' \
|
|
'-no-force-refresh[do not force refresh]' \
|
|
'(-q --quiet)*'{-q,--quiet}'[only display info about newly cached pages]' \
|
|
'(--no-conf --noconf)*'{--no-conf,--noconf}'[do not read any config files]' \
|
|
'*:subcommand and args:->subcmds' && return 0
|
|
|
|
compset -N '-[^0-9]#' && first=0
|
|
compset -N '[,.]' && first=0
|
|
[[ $first -eq 0 ]] || compset -n 2
|
|
|
|
if [[ CURRENT -eq 1 ]]; then
|
|
_wanted cmd expl 'bts command' compadd show bugs close reopen retitle \
|
|
reassign merge unmerge tag tags severity forwarded notforwarded help \
|
|
clone submitter found notfound block unblock user usertag usertags \
|
|
package owner noowner reportspam cache cleancache claim unclaim \
|
|
subscribe unsubscribe fixed notfixed affects
|
|
return
|
|
fi
|
|
|
|
case "$words[1]" in
|
|
(close|unmerge|notforwarded|noowner|reportspam)
|
|
if [[ CURRENT -eq 2 ]]; then
|
|
_message -e bugnum 'bug number'
|
|
else
|
|
_wanted sep expl 'separator' compadd -S ' ' , .
|
|
fi
|
|
;;
|
|
(show|bugs)
|
|
if [[ CURRENT -eq 2 ]]; then
|
|
_wanted package expl 'package' _deb_packages avail
|
|
_wanted maintainer expl 'package maintainer' compadd $DEBEMAIL
|
|
fi
|
|
_wanted sep expl 'separator' compadd -S ' ' , .
|
|
;;
|
|
reopen)
|
|
if [[ CURRENT -eq 2 ]]; then
|
|
_message -e bugnum 'bug number'
|
|
elif [[ CURRENT -eq 3 ]]; then
|
|
_wanted submitter expl 'new submitter' compadd $DEBEMAIL
|
|
else
|
|
_wanted sep expl 'separator' compadd -S ' ' , .
|
|
fi
|
|
;;
|
|
retitle)
|
|
if [[ CURRENT -eq 2 ]]; then
|
|
_message -e bugnum 'bug number'
|
|
elif [[ CURRENT -eq 3 ]]; then
|
|
_message -e submitter 'new title'
|
|
else
|
|
_wanted sep expl 'separator' compadd -S ' ' , .
|
|
fi
|
|
;;
|
|
reassign)
|
|
if [[ CURRENT -eq 2 ]]; then
|
|
_message -e bugnum 'bug number'
|
|
elif [[ CURRENT -eq 3 ]]; then
|
|
_wanted submitter expl 'new package' _deb_packages avail
|
|
else
|
|
_wanted sep expl 'separator' compadd -S ' ' , .
|
|
fi
|
|
;;
|
|
merge)
|
|
_message -e bugnum 'bug number'
|
|
if [[ CURRENT -gt 2 ]]; then
|
|
_wanted sep expl 'separator' compadd -S ' ' , .
|
|
fi
|
|
;;
|
|
tags#)
|
|
if [[ CURRENT -eq 2 ]]; then
|
|
_message -e bugnum 'bug number'
|
|
elif [[ CURRENT -eq 3 ]]; then
|
|
_wanted operator expl 'operator' compadd - '+' '-' '='
|
|
elif [[ CURRENT -eq 4 ]]; then
|
|
_wanted tag expl 'tag' \
|
|
compadd patch wontfix moreinfo unreproducible fixed security \
|
|
potato woody sid help pending upstream lfs sarge experimental \
|
|
sarge-ignore d-i confirmed ipv6 fixed-in-experimental \
|
|
fixed-upstream
|
|
else
|
|
_wanted tag expl 'tag' \
|
|
compadd patch wontfix moreinfo unreproducible fixed security \
|
|
potato woody sid help pending upstream lfs sarge experimental \
|
|
sarge-ignore d-i confirmed ipv6 fixed-in-experimental \
|
|
fixed-upstream
|
|
_wanted sep expl 'separator' compadd -S ' ' , .
|
|
fi
|
|
;;
|
|
severity)
|
|
if [[ CURRENT -eq 2 ]]; then
|
|
_message -e bugnum 'bug number'
|
|
elif [[ CURRENT -eq 3 ]]; then
|
|
_wanted severity expl 'severity' \
|
|
compadd wishlist minor normal serious important critical grave
|
|
else
|
|
_wanted sep expl 'separator' compadd -S ' ' , .
|
|
fi
|
|
;;
|
|
forwarded)
|
|
if [[ CURRENT -eq 2 ]]; then
|
|
_message -e bugnum 'bug number'
|
|
elif [[ CURRENT -eq 3 ]]; then
|
|
_wanted upstream expl 'upstream email' _email_addresses -c
|
|
else
|
|
_wanted sep expl 'separator' compadd -S ' ' , .
|
|
fi
|
|
;;
|
|
(clone)
|
|
if [[ CURRENT -eq 2 ]]; then
|
|
_message -e bugnum 'bug number'
|
|
elif [[ CURRENT -eq 3 || -prefix [-] ]]; then
|
|
_wanted newid expl 'new ID' compadd -- -{1..9}
|
|
else
|
|
_wanted sep expl 'separator' compadd -S ' ' , .
|
|
fi
|
|
;;
|
|
(submitter)
|
|
if [[ CURRENT -eq 2 ]]; then
|
|
_message -e bugnum 'bug number'
|
|
else
|
|
_alternative \
|
|
'bugnum:bug number:' \
|
|
'email:email address:_email_addresses -c' \
|
|
'bang:bang:compadd \!'
|
|
fi
|
|
;;
|
|
(owner|subscribe|unsubscribe)
|
|
if [[ CURRENT -eq 2 ]]; then
|
|
_message -e bugnum 'bug number'
|
|
elif [[ CURRENT -eq 3 ]]; then
|
|
_alternative \
|
|
'email:email address:_email_addresses -c' \
|
|
'bang:bang:compadd \!'
|
|
else
|
|
_wanted sep expl 'separator' compadd -S ' ' , .
|
|
fi
|
|
;;
|
|
(found|notfound|fixed|notfixed)
|
|
if [[ CURRENT -eq 2 ]]; then
|
|
_message -e bugnum 'bug number'
|
|
elif [[ CURRENT -eq 3 ]]; then
|
|
_message -e version 'version'
|
|
else
|
|
_wanted sep expl 'separator' compadd -S ' ' , .
|
|
fi
|
|
;;
|
|
(block|unblock)
|
|
if [[ CURRENT -eq 2 ]]; then
|
|
_message -e bugnum 'bug number'
|
|
elif [[ CURRENT -eq 3 ]]; then
|
|
_wanted prep expl 'preposition' compadd by with
|
|
else
|
|
_alternative \
|
|
'bugnum:bug number:' \
|
|
'separator:separator:compadd -S " " , .'
|
|
fi
|
|
;;
|
|
(user)
|
|
if [[ CURRENT -eq 2 ]]; then
|
|
_wanted upstream expl 'user email for usertags' _email_addresses -c
|
|
else
|
|
_wanted sep expl 'separator' compadd -S ' ' , .
|
|
fi
|
|
;;
|
|
(usertags#)
|
|
if [[ CURRENT -eq 2 ]]; then
|
|
_message -e bugnum 'bug number'
|
|
elif [[ CURRENT -eq 3 ]]; then
|
|
_wanted operator expl 'operator' compadd - '+' '-' '='
|
|
elif [[ CURRENT -eq 4 ]]; then
|
|
_message -e usertag 'user tag'
|
|
else
|
|
_message -e usertag 'user tag'
|
|
_wanted sep expl 'separator' compadd -S ' ' , .
|
|
fi
|
|
;;
|
|
(package)
|
|
if [[ CURRENT -eq 2 ]]; then
|
|
_wanted package expl 'package' _deb_packages avail
|
|
else
|
|
_wanted sep expl 'separator' compadd -S ' ' , .
|
|
fi
|
|
;;
|
|
(cache)
|
|
_alternative \
|
|
'package:package:_deb_packages avail' \
|
|
'email:email address:_email_addresses -c' \
|
|
'rc:rc:compadd release-critical'
|
|
;;
|
|
(cleancache)
|
|
_alternative \
|
|
'package:package:_deb_packages avail' \
|
|
'email:email address:_email_addresses -c' \
|
|
'all:all:compadd ALL'
|
|
;;
|
|
(claim|unclaim)
|
|
if [[ CURRENT -eq 2 ]]; then
|
|
_message -e bugnum 'bug number'
|
|
elif [[ CURRENT -eq 3 ]]; then
|
|
_alternative \
|
|
'email:email address:_email_addresses -c' \
|
|
'separator:separator:compadd -S " " , .'
|
|
else
|
|
_wanted sep expl 'separator' compadd -S ' ' , .
|
|
fi
|
|
;;
|
|
(affects)
|
|
if [[ CURRENT -eq 2 ]]; then
|
|
_message -e bugnum 'bug number'
|
|
elif [[ CURRENT -eq 3 ]]; then
|
|
_wanted operator expl 'operator' compadd - '+' '-' '='
|
|
else
|
|
_wanted package expl 'package' _deb_packages avail
|
|
fi
|
|
;;
|
|
help)
|
|
;&
|
|
*) _wanted sep expl 'separator' compadd -S ' ' , .
|
|
;;
|
|
esac
|