1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
From: Uwe Storbeck <uwe@ibr.ch>
Subject: support more options for dpkg-deb
Origin: vendor, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=698977
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=698977
Forwarded: no
---
completions/dpkg | 44 +++++++++++++++++++++++++++++++++++++++++---
1 file changed, 41 insertions(+), 3 deletions(-)
--- bash-completion.orig/completions/dpkg
+++ bash-completion/completions/dpkg
@@ -32,7 +32,7 @@ _comp_dpkg_purgeable_packages()
}
}
-# Debian dpkg(8) completion
+# Debian dpkg(1) completion
#
_dpkg()
{
@@ -54,7 +54,7 @@ _dpkg()
case $prev in
-c|-i|-A|-I|-f|-e|-x|-X|-W|--install|--unpack|--record-avail| \
--contents|--info|--fsys-tarfile|--field|--control|--extract| \
- --show)
+ --vextract|--show)
_filedir '?(u|d)deb'
return 0
;;
@@ -85,7 +85,45 @@ _dpkg()
COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) )
[[ $COMPREPLY == *= ]] && compopt -o nospace
} &&
-complete -F _dpkg dpkg dpkg-deb dpkg-query
+complete -F _dpkg dpkg dpkg-query
+
+# Debian dpkg-deb(1) completion
+#
+_dpkg_deb()
+{
+ local cur prev words cword split
+ _init_completion -s || return
+
+ _expand || return 0
+
+ local i=$cword
+
+ # find the last option flag
+ if [[ $cur != -* ]]; then
+ while [[ $prev != -* && $i -ne 1 ]]; do
+ i=$((i-1))
+ prev=${words[i-1]}
+ done
+ fi
+
+ case $prev in
+ -c|-I|-W|-f|-e|-x|-X|-R|--contents|--info|--show|--field|--control| \
+ --extract|--vextract|--raw-extract|--fsys-tarfile)
+ _filedir '?(u|d)deb'
+ return 0
+ ;;
+ -b|--build)
+ _filedir -d
+ return 0
+ ;;
+ esac
+
+ $split && return
+
+ COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) )
+ [[ $COMPREPLY == *= ]] && compopt -o nospace
+} &&
+complete -F _dpkg_deb dpkg-deb
# Debian GNU dpkg-reconfigure(8) completion
#
|