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
|
# Debian apt-fast(8) completion.
# Copy of Ubuntu 10.04 _apt_get function from apt completion. Merged with 12.04
# changes but preserve compatibility. _apt_get function renamed to _apt_fast.
_apt_fast()
{
local cur prev special i
COMPREPLY=()
cur="$(_get_cword)"
prev=${COMP_WORDS[COMP_CWORD-1]}
for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do
if [[ ${COMP_WORDS[i]} == @(install|remove|autoremove|purge|source|build-dep|changelog|download) ]]; then
special=${COMP_WORDS[i]}
fi
done
if [ -n "$special" ]; then
case $special in
remove|autoremove|purge)
if [ -f /etc/debian_version ]; then
# Debian system
COMPREPLY=( $( _xfunc dpkg _comp_dpkg_installed_packages "$cur" ) )
else
# assume RPM based
_rpm_installed_packages
fi
return 0
;;
source)
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" \
2> /dev/null ) $( apt-cache dumpavail | \
command grep "^Source: $cur" | sort -u | cut -f2 -d" " ) )
return 0
;;
*)
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" \
2> /dev/null ) )
return 0
;;
esac
fi
case "$prev" in
-@(c|-config-file))
_filedir
return 0
;;
-@(t|-target-release|-default-release))
COMPREPLY=( $( apt-cache policy | \
command grep "release.o=Debian,a=$cur" | \
sed -e "s/.*a=\(\w*\).*/\1/" | uniq 2> /dev/null) )
return 0
;;
esac
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-d -f -h -v -m -q -s -y -u -t -b -c -o
--download-only --fix-broken --help --version --ignore-missing
--fix-missing --no-download --quiet --simulate --just-print
--dry-run --recon --no-act --yes --assume-yes --show-upgraded
--only-source --compile --build --ignore-hold --target-release
--no-upgrade --force-yes --print-uris --purge --reinstall
--list-cleanup --default-release --trivial-only --no-remove
--diff-only --no-install-recommends --tar-only --config-file
--option --auto-remove' -- "$cur" ) )
else
COMPREPLY=( $( compgen -W 'update upgrade dselect-upgrade
dist-upgrade install remove purge source build-dep
check download clean autoclean autoremove changelog' -- "$cur" ) )
fi
return 0
} &&
complete -F _apt_fast "$filenames" apt-fast
# Local variables:
# mode: shell-script
# sh-basic-offset: 4
# sh-indent-comment: t
# indent-tabs-mode: nil
# End:
# ex: ts=4 sw=4 et filetype=sh
|