#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
Copyright 2K16 - 2K18 Indonesian Hacker Rulez