|
Packit |
8462d6 |
# Debian apt-get(8) completion -*- shell-script -*-
|
|
Packit |
8462d6 |
|
|
Packit |
8462d6 |
_apt_get()
|
|
Packit |
8462d6 |
{
|
|
Packit |
8462d6 |
local cur prev words cword
|
|
Packit |
8462d6 |
_init_completion || return
|
|
Packit |
8462d6 |
|
|
Packit |
8462d6 |
local special i
|
|
Packit |
8462d6 |
for (( i=0; i < ${#words[@]}-1; i++ )); do
|
|
Packit |
8462d6 |
if [[ ${words[i]} == @(install|remove|autoremove|purge|source|build-dep|download|changelog) ]]; then
|
|
Packit |
8462d6 |
special=${words[i]}
|
|
Packit |
8462d6 |
fi
|
|
Packit |
8462d6 |
done
|
|
Packit |
8462d6 |
|
|
Packit |
8462d6 |
if [[ -n $special ]]; then
|
|
Packit |
8462d6 |
case $special in
|
|
Packit |
8462d6 |
remove|autoremove|purge)
|
|
Packit |
8462d6 |
if [[ -f /etc/debian_version ]]; then
|
|
Packit |
8462d6 |
# Debian system
|
|
Packit |
8462d6 |
COMPREPLY=( $( \
|
|
Packit |
8462d6 |
_xfunc dpkg _comp_dpkg_installed_packages $cur ) )
|
|
Packit |
8462d6 |
else
|
|
Packit |
8462d6 |
# assume RPM based
|
|
Packit |
8462d6 |
_xfunc rpm _rpm_installed_packages
|
|
Packit |
8462d6 |
fi
|
|
Packit |
8462d6 |
;;
|
|
Packit |
8462d6 |
source)
|
|
Packit |
8462d6 |
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" \
|
|
Packit |
8462d6 |
2> /dev/null ) $( apt-cache dumpavail | \
|
|
Packit |
8462d6 |
command grep "^Source: $cur" | sort -u | cut -f2 -d" " ) )
|
|
Packit |
8462d6 |
;;
|
|
Packit |
8462d6 |
*)
|
|
Packit |
8462d6 |
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" \
|
|
Packit |
8462d6 |
2> /dev/null ) )
|
|
Packit |
8462d6 |
;;
|
|
Packit |
8462d6 |
esac
|
|
Packit |
8462d6 |
return
|
|
Packit |
8462d6 |
fi
|
|
Packit |
8462d6 |
|
|
Packit |
8462d6 |
case $prev in
|
|
Packit |
8462d6 |
-c|--config-file)
|
|
Packit |
8462d6 |
_filedir
|
|
Packit |
8462d6 |
return
|
|
Packit |
8462d6 |
;;
|
|
Packit |
8462d6 |
-t|--target-release|--default-release)
|
|
Packit |
8462d6 |
COMPREPLY=( $( apt-cache policy | \
|
|
Packit |
8462d6 |
command grep "release.o=Debian,a=$cur" | \
|
|
Packit |
8462d6 |
command sed -e "s/.*a=\(\w*\).*/\1/" | uniq 2> /dev/null) )
|
|
Packit |
8462d6 |
return
|
|
Packit |
8462d6 |
;;
|
|
Packit |
8462d6 |
esac
|
|
Packit |
8462d6 |
|
|
Packit |
8462d6 |
if [[ "$cur" == -* ]]; then
|
|
Packit |
8462d6 |
COMPREPLY=( $( compgen -W '-d -f -h -v -m -q -s -y -u -t -b -c -o
|
|
Packit |
8462d6 |
--download-only --fix-broken --help --version --ignore-missing
|
|
Packit |
8462d6 |
--fix-missing --no-download --quiet --simulate --just-print
|
|
Packit |
8462d6 |
--dry-run --recon --no-act --yes --assume-yes --show-upgraded
|
|
Packit |
8462d6 |
--only-source --compile --build --ignore-hold --target-release
|
|
Packit |
8462d6 |
--no-upgrade --force-yes --print-uris --purge --reinstall
|
|
Packit |
8462d6 |
--list-cleanup --default-release --trivial-only --no-remove
|
|
Packit |
8462d6 |
--diff-only --no-install-recommends --tar-only --config-file
|
|
Packit |
8462d6 |
--option --auto-remove' -- "$cur" ) )
|
|
Packit |
8462d6 |
else
|
|
Packit |
8462d6 |
COMPREPLY=( $( compgen -W 'update upgrade dselect-upgrade
|
|
Packit |
8462d6 |
dist-upgrade install remove purge source build-dep download
|
|
Packit |
8462d6 |
changelog check clean autoclean autoremove' -- "$cur" ) )
|
|
Packit |
8462d6 |
fi
|
|
Packit |
8462d6 |
|
|
Packit |
8462d6 |
} &&
|
|
Packit |
8462d6 |
complete -F _apt_get apt-get
|
|
Packit |
8462d6 |
|
|
Packit |
8462d6 |
# ex: filetype=sh
|