summaryrefslogtreecommitdiff
path: root/Completion/Debian/Command
diff options
context:
space:
mode:
authorAxel Beckert <abe@deuxchevaux.org>2016-12-04 04:32:03 +0100
committerAxel Beckert <abe@deuxchevaux.org>2016-12-04 04:32:03 +0100
commit3e439c3863f14c82f70666804c8570a13b3732e6 (patch)
tree07036c43e0f3f9242bb6dd42cd2a849ec8ea8aca /Completion/Debian/Command
parent2aedc4b88fd0e87b89583983951b04b96f48efd3 (diff)
parent7b7e84f0815ed22a0ee348a217776529035dccf3 (diff)
downloadzsh-3e439c3863f14c82f70666804c8570a13b3732e6.tar.gz
zsh-3e439c3863f14c82f70666804c8570a13b3732e6.zip
Merge tag 'zsh-5.2-test-1' into debian
Diffstat (limited to 'Completion/Debian/Command')
-rw-r--r--Completion/Debian/Command/_apt74
-rw-r--r--Completion/Debian/Command/_bts51
-rw-r--r--Completion/Debian/Command/_bug6
-rw-r--r--Completion/Debian/Command/_dchroot1
-rw-r--r--Completion/Debian/Command/_dchroot-dsa1
-rw-r--r--Completion/Debian/Command/_dcut6
-rw-r--r--Completion/Debian/Command/_debfoster4
-rw-r--r--Completion/Debian/Command/_git-buildpackage4
-rw-r--r--Completion/Debian/Command/_lintian2
-rw-r--r--Completion/Debian/Command/_make-kpkg2
-rw-r--r--Completion/Debian/Command/_schroot2
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]' \