diff options
Diffstat (limited to 'Completion/Debian/Command')
-rw-r--r-- | Completion/Debian/Command/_apt | 74 | ||||
-rw-r--r-- | Completion/Debian/Command/_bts | 51 | ||||
-rw-r--r-- | Completion/Debian/Command/_bug | 6 | ||||
-rw-r--r-- | Completion/Debian/Command/_dchroot | 1 | ||||
-rw-r--r-- | Completion/Debian/Command/_dchroot-dsa | 1 | ||||
-rw-r--r-- | Completion/Debian/Command/_dcut | 6 | ||||
-rw-r--r-- | Completion/Debian/Command/_debfoster | 4 | ||||
-rw-r--r-- | Completion/Debian/Command/_git-buildpackage | 4 | ||||
-rw-r--r-- | Completion/Debian/Command/_lintian | 2 | ||||
-rw-r--r-- | Completion/Debian/Command/_make-kpkg | 2 | ||||
-rw-r--r-- | Completion/Debian/Command/_schroot | 2 |
11 files changed, 107 insertions, 46 deletions
diff --git a/Completion/Debian/Command/_apt b/Completion/Debian/Command/_apt index 0bc20c6df..cd0783b4f 100644 --- a/Completion/Debian/Command/_apt +++ b/Completion/Debian/Command/_apt @@ -399,20 +399,32 @@ _apt-cmd () { -o,--option:arbitem \ -t,--target-release:release \ -- \ - /$'list\0'/ \| \ + /$'list\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \| \ /$'search\0'/ /$'[^\0]#\0'/ ':strings:pattern:' \| \ - /$'show\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \ + /$'showsrc\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \| \ + /$'show\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \| \ + /$'depends\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \| \ + /$'rdepends\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \| \ + /$'policy\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \| \ /$'update\0'/ \| \ \( \ - /$'install\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \ - /$'[^\0/]#/'/ /$'[^\0/]#\0'/ ':release name::_apt_releases' \) \| \ + /$'install\0'\|$'download\0'\|$'source\0'\|$'build-dep\0'/ \ + /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \ + \( \ + /$'[^\0/]#/'/ /$'[^\0/]#\0'/ ':release name::_apt_releases' \| \ + /$'[^\0=]#='/ /$'[^\0=]#\0'/ ':package version::_apt_versions_of_binary_package' \ + \) \ + \) \| \ /$'remove\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \ /$'purge\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \ /$'upgrade\0'/ \| \ + /$'autoclean\0'/ \| \ + /$'changelog\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \| \ /$'autoremove\0'/ \| \ /$'full-upgrade\0'/ \| \ + /$'dist-upgrade\0'/ \| \ /$'edit-sources\0'/ \| \ - /"[]"/ ':argument-1::compadd "$expl_action[@]" list search show update install remove upgrade full-upgrade edit-sources autoremove purge' + /"[]"/ ':argument-1::compadd "$expl_action[@]" list search showsrc show depends rdepends policy update install download source build-dep remove upgrade full-upgrade dist-upgrade edit-sources autoclean changelog autoremove purge' _apt-cmd () { local expl_action expl_packages @@ -462,8 +474,13 @@ _apt-get () { /$'update\0'/ \| \ /$'upgrade\0'/ \| \ \( \ - /$'install\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \ - /$'[^\0/]#/'/ /$'[^\0/]#\0'/ ':release name::_apt_releases' \) \| \ + /$'install\0'\|$'download\0'\|$'source\0'\|$'build-dep\0'/ \ + /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \ + \( \ + /$'[^\0/]#/'/ /$'[^\0/]#\0'/ ':release name::_apt_releases' \| \ + /$'[^\0=]#='/ /$'[^\0=]#\0'/ ':package version::_apt_versions_of_binary_package' \ + \) \ + \) \| \ /$'remove\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \ /$'purge\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \ /$'dist-upgrade\0'/ \| \ @@ -472,13 +489,11 @@ _apt-get () { /$'autoclean\0'/ \| \ /$'changelog\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \| \ /$'check\0'/ \| \ - /$'source\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \| \ - /$'build-dep\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \| \ /$'autoremove\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \ /$'help\0/' \| \ /$'markauto\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \ /$'unmarkauto\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \ - /"[]"/ ':argument-1::compadd "$expl_action[@]" update upgrade install remove purge dist-upgrade dselect-upgrade clean autoclean changelog check source build-dep autoremove help markauto unmarkauto' + /"[]"/ ':argument-1::compadd "$expl_action[@]" update upgrade install remove purge dist-upgrade dselect-upgrade clean autoclean changelog check source build-dep autoremove help markauto unmarkauto download' _apt-get () { local expl_action expl_packages @@ -592,8 +607,10 @@ _apt_releases_update () { if ( [[ ${+_apt_releases} -eq 0 ]] || _cache_invalid APT_releases ) && ! _retrieve_cache APT_releases; then + local -a tmp=("${(f)$(apt-cache policy)}") _apt_releases=( -${${${${(M)${(f)"$(apt-cache policy)"}:#*release*}#*a=}%%,*}:#now} +${${${${(M)tmp:#*release*}#*a=}%%,*}:#now} +${${${${(M)tmp:#*release*n=*}#*n=}%%,*}:#now} ) typeset -U _apt_releases _store_cache APT_releases _apt_releases @@ -613,6 +630,41 @@ _apt_releases () { _tags apt-releases && compadd -a _apt_releases } +# Complete versions of the package named in $match[1]. +# +# Interpret the package name as a binary package (even if there is +# a source package by that name, too). +_apt_versions_of_binary_package() { + local package_name=${match[1]%=} # $match was set by _regex_arguments + local line + local name version source + local -a kv + + for line in ${(f)"$(_call_program versions-of-package "apt-cache madison $package_name")"}; do + # If $package_name is a source package name, we'll have lines of the form + # $package_name | $version | ...Sources + # + # If $package_name is a binary package name, we'll have lines of the form + # $package_name | $version | ...Packages + # $src_package_name | $version | ...Sources + for name version source in "${(@s. | .)line}"; do + # Remove leading/trailing whitespace + name=${name// } + version=${version// } + source=${${source# ##}% ##} + + # Skip source packages + if [[ $name != $package_name ]] || [[ $source != *Packages* ]]; then + continue + fi + + kv+=( "${version//:/\\:}:$source" ) + done + done + + _describe -t apt-package-versions "package versions" kv "$@" +} + _apt_caching_policy () { local -a oldp diff --git a/Completion/Debian/Command/_bts b/Completion/Debian/Command/_bts index 9f1f77bf4..f415989b9 100644 --- a/Completion/Debian/Command/_bts +++ b/Completion/Debian/Command/_bts @@ -17,7 +17,7 @@ _arguments -A "-*" \ '(--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 '-[^0-9]##' && first=0 compset -N '[,.]' && first=0 [[ $first -eq 0 ]] || compset -n 2 @@ -33,7 +33,7 @@ fi case "$words[1]" in (close|unmerge|notforwarded|noowner|reportspam) if [[ CURRENT -eq 2 ]]; then - _message -e bugnum 'bug number' + _debbugs_bugnumber else _wanted sep expl 'separator' compadd -S ' ' , . fi @@ -41,24 +41,25 @@ case "$words[1]" in (show|bugs) if [[ CURRENT -eq 2 ]]; then _alternative \ - 'packages:package:_deb_packages avail' \ - "emails:package maintainer:compadd $DEBEMAIL" + 'packages:package:_deb_packages avail' \ + 'emails:package maintainer:compadd $DEBEMAIL' \ + 'bugnum:bug number:_debbugs_bugnumber' else _wanted sep expl 'separator' compadd -S ' ' , . fi ;; reopen) if [[ CURRENT -eq 2 ]]; then - _message -e bugnum 'bug number' + _debbugs_bugnumber elif [[ CURRENT -eq 3 ]]; then - _wanted submitter expl 'new submitter' compadd $DEBEMAIL + _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' + _debbugs_bugnumber elif [[ CURRENT -eq 3 ]]; then _message -e submitter 'new title' else @@ -67,7 +68,7 @@ case "$words[1]" in ;; reassign) if [[ CURRENT -eq 2 ]]; then - _message -e bugnum 'bug number' + _debbugs_bugnumber elif [[ CURRENT -eq 3 ]]; then _wanted submitter expl 'new package' _deb_packages avail else @@ -75,14 +76,14 @@ case "$words[1]" in fi ;; merge) - _message -e bugnum 'bug number' + _debbugs_bugnumber if [[ CURRENT -gt 2 ]]; then _wanted sep expl 'separator' compadd -S ' ' , . fi ;; tags#) if [[ CURRENT -eq 2 ]]; then - _message -e bugnum 'bug number' + _debbugs_bugnumber elif [[ CURRENT -eq 3 ]]; then _wanted operator expl 'operator' compadd - '+' '-' '=' elif [[ CURRENT -eq 4 ]]; then @@ -104,7 +105,7 @@ case "$words[1]" in ;; severity) if [[ CURRENT -eq 2 ]]; then - _message -e bugnum 'bug number' + _debbugs_bugnumber elif [[ CURRENT -eq 3 ]]; then _wanted severity expl 'severity' \ compadd wishlist minor normal serious important critical grave @@ -114,7 +115,7 @@ case "$words[1]" in ;; forwarded) if [[ CURRENT -eq 2 ]]; then - _message -e bugnum 'bug number' + _debbugs_bugnumber elif [[ CURRENT -eq 3 ]]; then _wanted upstream expl 'upstream email' _email_addresses -c else @@ -123,7 +124,7 @@ case "$words[1]" in ;; (clone) if [[ CURRENT -eq 2 ]]; then - _message -e bugnum 'bug number' + _debbugs_bugnumber elif [[ CURRENT -eq 3 || -prefix [-] ]]; then _wanted newid expl 'new ID' compadd -- -{1..9} else @@ -132,17 +133,17 @@ case "$words[1]" in ;; (submitter) if [[ CURRENT -eq 2 ]]; then - _message -e bugnum 'bug number' + _debbugs_bugnumber else _alternative \ - 'bugnum:bug number:' \ + 'bugnum:bug number:_debbugs_bugnumber' \ 'email:email address:_email_addresses -c' \ 'bang:bang:compadd \!' fi ;; (owner|subscribe|unsubscribe) if [[ CURRENT -eq 2 ]]; then - _message -e bugnum 'bug number' + _debbugs_bugnumber elif [[ CURRENT -eq 3 ]]; then _alternative \ 'email:email address:_email_addresses -c' \ @@ -153,7 +154,7 @@ case "$words[1]" in ;; (found|notfound|fixed|notfixed) if [[ CURRENT -eq 2 ]]; then - _message -e bugnum 'bug number' + _debbugs_bugnumber elif [[ CURRENT -eq 3 ]]; then _message -e version 'version' else @@ -162,12 +163,12 @@ case "$words[1]" in ;; (block|unblock) if [[ CURRENT -eq 2 ]]; then - _message -e bugnum 'bug number' + _debbugs_bugnumber elif [[ CURRENT -eq 3 ]]; then _wanted prep expl 'preposition' compadd by with else _alternative \ - 'bugnum:bug number:' \ + 'bugnum:bug number:_debbugs_bugnumber' \ 'separator:separator:compadd -S " " , .' fi ;; @@ -180,7 +181,7 @@ case "$words[1]" in ;; (usertags#) if [[ CURRENT -eq 2 ]]; then - _message -e bugnum 'bug number' + _debbugs_bugnumber elif [[ CURRENT -eq 3 ]]; then _wanted operator expl 'operator' compadd - '+' '-' '=' elif [[ CURRENT -eq 4 ]]; then @@ -199,8 +200,10 @@ case "$words[1]" in ;; (cache) _alternative \ - 'package:package:_deb_packages avail' \ - 'email:email address:_email_addresses -c' \ + 'source-packages:source package:_deb_packages -P "src:" source' \ + 'package:binary package:_deb_packages avail' \ + 'email:email address:_email_addresses -c -P "from:"' \ + 'bugnum:bug number:_debbugs_bugnumber' \ 'rc:rc:compadd release-critical' ;; (cleancache) @@ -211,7 +214,7 @@ case "$words[1]" in ;; (claim|unclaim) if [[ CURRENT -eq 2 ]]; then - _message -e bugnum 'bug number' + _debbugs_bugnumber elif [[ CURRENT -eq 3 ]]; then _alternative \ 'email:email address:_email_addresses -c' \ @@ -222,7 +225,7 @@ case "$words[1]" in ;; (affects) if [[ CURRENT -eq 2 ]]; then - _message -e bugnum 'bug number' + _debbugs_bugnumber elif [[ CURRENT -eq 3 ]]; then _wanted operator expl 'operator' compadd - '+' '-' '=' else diff --git a/Completion/Debian/Command/_bug b/Completion/Debian/Command/_bug index d757a4a3d..436d294f9 100644 --- a/Completion/Debian/Command/_bug +++ b/Completion/Debian/Command/_bug @@ -7,7 +7,6 @@ _bug_commonargs=( '-m[maintainer-only]' '-p[print to stdout instead of mail]' '-h[help]' - '*:package:_deb_packages installed' ) _rb_commonargs=( @@ -29,6 +28,7 @@ case "$service" in '-v[version]' \ '-x[do not cc submitter]' \ '-z[send configs verbatim]' \ + '*:package:_deb_packages installed' \ "$_bug_commonargs[@]" ;; reportbug) @@ -92,6 +92,7 @@ case "$service" in '(--paranoid)--no-paranoid' \ '--body=:message body string' \ '--body-file=:message body file:_files' \ + '*:package: _alternative "packages::_deb_packages installed" "files::{ [[ \$PREFIX[1] == / ]] && _files }"' \ "$_bug_commonargs[@]" \ "$_rb_commonargs[@]" ;; @@ -102,6 +103,7 @@ case "$service" in '(-s --source)'{-s,--source}'[query for source packages rather than binary]' \ '(-v --version)'{-v,--version}'[show version]' \ "$_rb_commonargs[@]" \ - '*:package:_deb_packages avail' + '*:a package name or bug numbers:_deb_packages avail' + # TODO: could call _debbugs_bugnumber here. ;; esac diff --git a/Completion/Debian/Command/_dchroot b/Completion/Debian/Command/_dchroot index c26e5691a..2a6f5d808 100644 --- a/Completion/Debian/Command/_dchroot +++ b/Completion/Debian/Command/_dchroot @@ -2,6 +2,7 @@ local expl context state line typeset -A opt_args +local -a _comp_priv_prefix _arguments -S \ '(-h --help)'{-h,--help}'[help]' \ diff --git a/Completion/Debian/Command/_dchroot-dsa b/Completion/Debian/Command/_dchroot-dsa index d4668b553..e8e981b84 100644 --- a/Completion/Debian/Command/_dchroot-dsa +++ b/Completion/Debian/Command/_dchroot-dsa @@ -2,6 +2,7 @@ local expl context state line typeset -A opt_args +local -a _comp_priv_prefix _arguments -S \ '(-h --help)'{-h,--help}'[help]' \ diff --git a/Completion/Debian/Command/_dcut b/Completion/Debian/Command/_dcut index 210d54429..fb1ac7e4f 100644 --- a/Completion/Debian/Command/_dcut +++ b/Completion/Debian/Command/_dcut @@ -106,7 +106,7 @@ function _dcut() { (rm) # dcut rm arguments opts=( - '--searchdirs[search in all directores for the given files]' + '--searchdirs[search in all directories for the given files]' '1::file to be deleted:_files' ) ;; @@ -128,7 +128,7 @@ function _dcut() { opts=( '--uid[full name and address or GPG fingerprint of the Debian Maintainer]' '*--allow[grant permission to upload a source package]:source package' - '*--deny[remove permission to upload a source pckage]:source package' + '*--deny[remove permission to upload a source package]:source package' ) ;; (reschedule) @@ -142,7 +142,7 @@ function _dcut() { # dcut rm arguments opts=( '*'{-f,--filename}'[file name to be removed]:file name:_files' - '--searchdirs[search in all directores for the given files]' + '--searchdirs[search in all directories for the given files]' ) ;; (upload) diff --git a/Completion/Debian/Command/_debfoster b/Completion/Debian/Command/_debfoster index 154d0e913..08a1078e2 100644 --- a/Completion/Debian/Command/_debfoster +++ b/Completion/Debian/Command/_debfoster @@ -26,10 +26,10 @@ _arguments -C \ && ret=0 if [[ -n "$state" ]]; then - if compset -P '*='; then + if compset -P 1 '*='; then case "$IPREFIX" in *(#i)(install|remove|info)cmd*) - _wanted values expl 'command string' _command && ret=0 + _wanted values expl 'command string' _cmdstring && ret=0 ;; *(#i)(keeperfile|dpkg(status|available))*) _wanted values expl 'metadata file' _files && ret=0 diff --git a/Completion/Debian/Command/_git-buildpackage b/Completion/Debian/Command/_git-buildpackage index a2dc65689..c38edc1cc 100644 --- a/Completion/Debian/Command/_git-buildpackage +++ b/Completion/Debian/Command/_git-buildpackage @@ -4,7 +4,7 @@ _arguments \ '--version[show program version number and exit]' \ '--help[show help message and exit]' \ - '--git-ignore-new[build with uncommited changes in the source tree]' \ + '--git-ignore-new[build with uncommitted changes in the source tree]' \ '--git-no-ignore-new[negates --git-ignore-new]' \ '--git-verbose[verbose command execution]' \ '--git-tag[create a tag after a successful build]' \ @@ -40,4 +40,4 @@ _arguments \ '--git-dont-purge[retain exported package build directory]' \ '--git-overlay[extract orig tarball when using export-dir option]' \ '--git-no-overlay[negates --git-overlay]' \ - '*:Other options:_dpkg-buildpackage' + '*:other options:_dpkg-buildpackage' diff --git a/Completion/Debian/Command/_lintian b/Completion/Debian/Command/_lintian index 773e7a182..16af5085b 100644 --- a/Completion/Debian/Command/_lintian +++ b/Completion/Debian/Command/_lintian @@ -23,7 +23,7 @@ case "$service" in '(-o --no-override)'{-o,--no-override}'[do not use the overrides file]' \ '--show-overrides[output tags that have been overridden]' \ '--color:when:(never always auto)' \ - '(-U --unpack-info)'{-U,--unpack-info}'[collect informations]:infos:_values -s , "collectibles" changelog-file copyright-file debfiles debian-readme diffstat doc-base-files file-info init.d md5sums menu-files objdump-info override-file scripts source-control-file' \ + '(-U --unpack-info)'{-U,--unpack-info}'[collect information]:info:_values -s , "collectibles" changelog-file copyright-file debfiles debian-readme diffstat doc-base-files file-info init.d md5sums menu-files objdump-info override-file scripts source-control-file' \ '(-m --md5sums)'{-m,--md5sums}'[check md5sums when processing a .changes file]' \ '--allow-root[override warning when run with superuser privileges]' \ '--cfg:config file:_files' \ diff --git a/Completion/Debian/Command/_make-kpkg b/Completion/Debian/Command/_make-kpkg index 55adf882f..252627a79 100644 --- a/Completion/Debian/Command/_make-kpkg +++ b/Completion/Debian/Command/_make-kpkg @@ -40,7 +40,7 @@ _arguments -C \ build\:"compiles the kernel" \ modules\:"build all add-on modules" \ modules-config\:"configure all add-on modules" \ - modules-image\:"build all add-on modules, but wirhou source and diff files" \ + modules-image\:"build all add-on modules, but without source and diff files" \ modules-clean\:"clean add-on modules" \ configure\:"configure the kernel" \ debian\:"creates the debian/ directory" \ diff --git a/Completion/Debian/Command/_schroot b/Completion/Debian/Command/_schroot index f10236860..117df45ef 100644 --- a/Completion/Debian/Command/_schroot +++ b/Completion/Debian/Command/_schroot @@ -2,6 +2,7 @@ local expl context state line typeset -A opt_args +local -a _comp_priv_prefix _arguments -S \ '(-h --help)'{-h,--help}'[help]' \ @@ -20,6 +21,7 @@ _arguments -S \ '(-v --verbose)'{-v,--verbose}'[verbose]' \ '(-V --version)'{-V,--version}'[version]' \ '(-b --begin-session)'{-b,--begin-session}'[begin a session; returns a session ID]' \ + '(-r --run-session)'{-r,--run-session}'[run an existing session]' \ '--recover-session[recover an existing session]' \ '(-e --end-session)'{-e,--end-session}'[end an existing session]' \ '(-f --force)'{-f,--force}'[force operation]' \ |