mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-03-12 04:36:22 -07:00
105 lines
3.8 KiB
Bash
105 lines
3.8 KiB
Bash
# Debian apt-get(8) completion -*- shell-script -*-
|
|
|
|
_apt_get()
|
|
{
|
|
local cur prev words cword package
|
|
_init_completion -n ':=' || return
|
|
|
|
local special i
|
|
for ((i = 1; i < ${#words[@]} - 1; i++)); do
|
|
if [[ ${words[i]} == @(install|remove|autoremove|purge|source|build-dep|download|changelog) ]]; then
|
|
special=${words[i]}
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [[ -v 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
|
|
_xfunc rpm _rpm_installed_packages
|
|
fi
|
|
;;
|
|
source)
|
|
COMPREPLY=($(_xfunc apt-cache _apt_cache_packages)
|
|
$(compgen -W "$(apt-cache dumpavail |
|
|
awk '$1 == "Source:" { print $2 }' | sort -u)" -- "$cur"))
|
|
;;
|
|
install)
|
|
if [[ $cur == */* ]]; then
|
|
_filedir deb
|
|
return
|
|
elif [[ $cur == *=* ]]; then
|
|
package="${cur%%=*}"
|
|
cur="${cur#*=}"
|
|
COMPREPLY=($(IFS=$'\n' compgen -W "$(
|
|
apt-cache --no-generate madison "$package" 2>/dev/null |
|
|
while IFS=' |' read -r _ version _; do
|
|
echo "$version"
|
|
done
|
|
)" \
|
|
-- "$cur"))
|
|
__ltrim_colon_completions "$cur"
|
|
return
|
|
fi
|
|
;;&
|
|
build-dep)
|
|
_filedir -d
|
|
[[ $cur != */* ]] || return
|
|
;;&
|
|
*)
|
|
COMPREPLY+=($(_xfunc apt-cache _apt_cache_packages))
|
|
;;
|
|
esac
|
|
return
|
|
fi
|
|
|
|
case $prev in
|
|
--help | --version | --option | -!(-*)[hvo])
|
|
return
|
|
;;
|
|
--config-file | -!(-*)c)
|
|
_filedir
|
|
return
|
|
;;
|
|
--target-release | --default-release | -!(-*)t)
|
|
COMPREPLY=($(compgen -W "$(apt-cache policy | command sed -ne \
|
|
's/^ *release.*[ ,]o=\(Debian\|Ubuntu\),a=\(\w*\).*/\2/p')" \
|
|
-- "$cur"))
|
|
return
|
|
;;
|
|
esac
|
|
|
|
if [[ $cur == -* ]]; then
|
|
COMPREPLY=($(compgen -W '--no-install-recommends --install-suggests
|
|
--download-only --fix-broken --ignore-missing --fix-missing
|
|
--no-download --quiet --simulate --just-print --dry-run --recon
|
|
--no-act --yes --assume-yes --assume-no --no-show-upgraded
|
|
--verbose-versions --host-architecture --build-profiles --compile
|
|
--build --ignore-hold --with-new-pkgs --no-upgrade --only-upgrade
|
|
--allow-downgrades --allow-remove-essential
|
|
--allow-change-held-packages --force-yes --print-uris --purge
|
|
--reinstall --list-cleanup --target-release --default-release
|
|
--trivial-only --no-remove --auto-remove --autoremove --only-source
|
|
--diff-only --dsc-only --tar-only --arch-only --indep-only
|
|
--allow-unauthenticated --no-allow-insecure-repositories
|
|
--allow-releaseinfo-change --show-progress --with-source --help
|
|
--version --config-file --option' -- "$cur"))
|
|
else
|
|
COMPREPLY=($(compgen -W 'update upgrade dist-upgrade
|
|
dselect-upgrade install remove purge source build-dep check
|
|
download clean autoclean autoremove changelog indextargets' \
|
|
-- "$cur"))
|
|
fi
|
|
|
|
} &&
|
|
complete -F _apt_get apt-get
|
|
|
|
# ex: filetype=sh
|