diff options
Diffstat (limited to 'completions/bts')
-rw-r--r-- | completions/bts | 69 |
1 files changed, 33 insertions, 36 deletions
diff --git a/completions/bts b/completions/bts index c87b51e1..d535d13e 100644 --- a/completions/bts +++ b/completions/bts @@ -1,92 +1,89 @@ # bts completion -*- shell-script -*- # List bug numbers from bugs cache in ~/.devscripts_cache/bts -_cached_bugs() { - [[ -d $HOME/.devscripts_cache/bts ]] && \ +_cached_bugs() +{ + [[ -d $HOME/.devscripts_cache/bts ]] && find $HOME/.devscripts_cache/bts -maxdepth 1 -name "${cur}[0-9]*.html" \ -printf "%f\n" | cut -d'.' -f1 } # List APT source packages prefixed with "src:" -_src_packages_with_prefix() { +_src_packages_with_prefix() +{ ppn=${cur:4} # partial package name, after stripping "src:" compgen -P "src:" -W '$(_xfunc apt-cache _apt_cache_sources "$ppn")' \ -- "$ppn" } - _bts() { local cur prev words cword split _init_completion -s || return case $prev in - show|bugs) - COMPREPLY=( $(compgen -W 'release-critical RC from: tag: + show | bugs) + COMPREPLY=($(compgen -W 'release-critical RC from: tag: usertag:' -- "$cur") $(_cached_bugs) - $(_src_packages_with_prefix) ) + $(_src_packages_with_prefix)) return ;; select) - COMPREPLY=( $(compgen -W 'package: source: maintainer: submitter: + COMPREPLY=($(compgen -W 'package: source: maintainer: submitter: severity: status: tag: owner: correspondent: affects: bugs: - users: archive:' -- "$cur") ) + users: archive:' -- "$cur")) return ;; status) - COMPREPLY=( $(compgen -W 'file: fields: verbose' -- "$cur") - $(_cached_bugs) ) + COMPREPLY=($(compgen -W 'file: fields: verbose' -- "$cur") + $(_cached_bugs)) return ;; - block|unblock) - COMPREPLY=( $(compgen -W 'by with' -- "$cur") ) + block | unblock) + COMPREPLY=($(compgen -W 'by with' -- "$cur")) return ;; severity) - COMPREPLY=( $(compgen -W 'wishlist minor normal important serious - grave critical' -- "$cur") ) + COMPREPLY=($(compgen -W 'wishlist minor normal important serious + grave critical' -- "$cur")) return ;; limit) - COMPREPLY=( $(compgen -W 'submitter date subject msgid package - source tag severity owner affects archive' -- "$cur") ) + COMPREPLY=($(compgen -W 'submitter date subject msgid package + source tag severity owner affects archive' -- "$cur")) return ;; - clone|"done"|reopen|archive|unarchive|retitle|summary|submitter|found\ - |notfound|fixed|notfixed|merge|forcemerge|unmerge|claim|unclaim\ - |forwarded|notforwarded|owner|noowner|subscribe|unsubscribe\ - |reportspam|spamreport|affects|usertag|usertags|reassign|tag\ - |tags) - COMPREPLY=( $(_cached_bugs) ) + clone | "done" | reopen | archive | unarchive | retitle | summary | submitter | found | notfound | fixed | notfixed | merge | forcemerge | unmerge | claim | unclaim | forwarded | notforwarded | owner | noowner | subscribe | unsubscribe | reportspam | spamreport | affects | usertag | usertags | reassign | tag | tags) + COMPREPLY=($(_cached_bugs)) return ;; package) - COMPREPLY=( $(_xfunc apt-cache _apt_cache_packages) ) + COMPREPLY=($(_xfunc apt-cache _apt_cache_packages)) return ;; cache) - COMPREPLY=( $(_xfunc apt-cache _apt_cache_packages) - $(_src_packages_with_prefix) - $(compgen -W 'from: release-critical RC' -- "$cur") ) + COMPREPLY=($(_xfunc apt-cache _apt_cache_packages) + $(_src_packages_with_prefix) + $(compgen -W 'from: release-critical RC' -- "$cur")) return ;; cleancache) - COMPREPLY=( $(_xfunc apt-cache _apt_cache_packages) - $(_src_packages_with_prefix) - $(compgen -W 'from: tag: usertag: ALL' -- "$cur") ) + COMPREPLY=($(_xfunc apt-cache _apt_cache_packages) + $(_src_packages_with_prefix) + $(compgen -W 'from: tag: usertag: ALL' -- "$cur")) return ;; user) # non-predicible arguments - COMPREPLY=( ) + COMPREPLY=() return ;; :) # Chances are that "src:<src_package>" is being completed # COMP_WORDS would be: "bts cleancache src : <partial_pkg_name>" pos=$((COMP_CWORD - 2)) - if [[ $pos -gt 0 && "${COMP_WORDS[$pos]}" == "src" ]]; then - COMPREPLY=( $(_xfunc apt-cache _apt_cache_src_packages) ) + if [[ $pos -gt 0 && ${COMP_WORDS[pos]} == "src" ]]; then + COMPREPLY=($(_xfunc apt-cache _apt_cache_src_packages)) return fi ;; @@ -94,7 +91,7 @@ _bts() $split && return - COMPREPLY=( $(compgen -W '--offline --online --no-offline + COMPREPLY=($(compgen -W '--offline --online --no-offline --no-action --cache --no-cache --cache-mode --cache-delay --mbox --mailreader --cc-addr --use-default-cc --no-use-default-cc --sendmail --mutt --no-mutt --smtp-host --smtp-username @@ -107,9 +104,9 @@ _bts() merge forcemerge unmerge tag tags affects user usertag usertags claim unclaim severity forwarded notforwarded package limit owner noowner subscribe unsubscribe reportspam spamreport cache cleancache version - help' -- "$cur") ) + help' -- "$cur")) } && -complete -F _bts bts + complete -F _bts bts # ex: filetype=sh |