blob: 0b90b14b7e486887c34ea73cf10bb35d62669ba7 (
plain)
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
# This function is required by _dpkg and _dpkg-reconfigure -*- shell-script -*-
_have grep-status && {
_comp_dpkg_installed_packages()
{
grep-status -P -e "^$1" -a -FStatus 'ok installed' -n -s Package
}
} || {
_comp_dpkg_installed_packages()
{
command grep -A 1 "Package: $1" /var/lib/dpkg/status 2>/dev/null |
command grep -B 1 -Ee "ok installed|half-installed|unpacked| \
half-configured" \
-Ee "^Essential: yes" |
awk "/Package: $1/ { print \$2 }" 2>/dev/null
}
}
_have grep-status && {
_comp_dpkg_purgeable_packages()
{
grep-status -P -e "^$1" -a -FStatus 'ok installed' -o -FStatus 'ok config-files' -n -s Package
}
} || {
_comp_dpkg_purgeable_packages()
{
command grep -A 1 "Package: $1" /var/lib/dpkg/status 2>/dev/null |
command grep -B 1 -Ee "ok installed|half-installed|unpacked| \
half-configured|config-files" \
-Ee "^Essential: yes" |
awk "/Package: $1/ { print \$2 }" 2>/dev/null
}
}
# Debian dpkg(1) completion
#
_dpkg()
{
local cur prev words cword split
_init_completion -s || return
local i=$cword
# find the last option flag
if [[ $cur != -* ]]; then
while [[ $prev != -* && $i -ne 1 ]]; do
prev=${words[--i - 1]}
done
fi
case $prev in
--install | --unpack | --record-avail | --contents | --info | --fsys-tarfile | \
--field | --control | --extract | --vextract | --raw-extract | -!(-*)[ciAIfexX])
_filedir '?(u|d)deb'
return
;;
--build | -!(-*)b)
_filedir -d
return
;;
--status | --print-avail | --list | -!(-*)[spl])
COMPREPLY=($(_xfunc apt-cache _apt_cache_packages))
return
;;
--show | -!(-*)W)
if [[ $1 == *dpkg-query ]]; then
COMPREPLY=($(_xfunc apt-cache _apt_cache_packages))
else
_filedir '?(u|d)deb'
fi
return
;;
--search | -!(-*)S)
_filedir
return
;;
--remove | --verify | -!(-*)[rV])
COMPREPLY=($(_comp_dpkg_installed_packages "$cur"))
return
;;
--listfiles | --purge | -!(-*)[LP])
COMPREPLY=($(_comp_dpkg_purgeable_packages "$cur"))
return
;;
esac
$split && return
COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
[[ ${COMPREPLY-} == *= ]] && compopt -o nospace
} &&
complete -F _dpkg dpkg dpkg-deb dpkg-query
# Debian GNU dpkg-reconfigure(8) completion
#
_dpkg_reconfigure()
{
local cur prev words cword
_init_completion || return
local opt
case $prev in
--frontend | -!(-*)f)
opt=($(printf '%s\n' /usr/share/perl5/Debconf/FrontEnd/*))
opt=(${opt[@]##*/})
opt=(${opt[@]%.pm})
COMPREPLY=($(compgen -W '${opt[@]}' -- "$cur"))
return
;;
--priority | -!(-*)p)
COMPREPLY=($(compgen -W 'low medium high critical' -- "$cur"))
return
;;
esac
if [[ $cur == -* ]]; then
COMPREPLY=($(compgen -W '--frontend --priority --all --unseen-only
--help --showold --force --terse' -- "$cur"))
else
COMPREPLY=($(_comp_dpkg_installed_packages "$cur"))
fi
} &&
complete -F _dpkg_reconfigure -o default dpkg-reconfigure
# ex: filetype=sh
|