|
@@ -0,0 +1,95 @@
|
|
|
|
|
+# Debian apt(8) completion -*- shell-script -*-
|
|
|
|
|
+
|
|
|
|
|
+_apt()
|
|
|
|
|
+{
|
|
|
|
|
+ local sourcesdir="/etc/apt/sources.list.d"
|
|
|
|
|
+ local cur prev words cword
|
|
|
|
|
+ _init_completion || return
|
|
|
|
|
+
|
|
|
|
|
+ # see if the user selected a command already
|
|
|
|
|
+ local COMMANDS=("install" "remove" "purge" "show" "list"
|
|
|
|
|
+ "update" "upgrade" "full-upgrade" "dist-upgrade"
|
|
|
|
|
+ "edit-sources" "help")
|
|
|
|
|
+
|
|
|
|
|
+ local command i
|
|
|
|
|
+ for (( i=0; i < ${#words[@]}-1; i++ )); do
|
|
|
|
|
+ if [[ ${COMMANDS[@]} =~ ${words[i]} ]]; then
|
|
|
|
|
+ command=${words[i]}
|
|
|
|
|
+ break
|
|
|
|
|
+ fi
|
|
|
|
|
+ done
|
|
|
|
|
+
|
|
|
|
|
+ # supported options per command
|
|
|
|
|
+ if [[ "$cur" == -* ]]; then
|
|
|
|
|
+ case $command in
|
|
|
|
|
+ install|remove|purge|upgrade|full-upgrade)
|
|
|
|
|
+ COMPREPLY=( $( compgen -W '--show-progress
|
|
|
|
|
+ --fix-broken --purge --verbose-versions --auto-remove
|
|
|
|
|
+ --simulate --dry-run
|
|
|
|
|
+ --download
|
|
|
|
|
+ --fix-missing
|
|
|
|
|
+ --fix-policy
|
|
|
|
|
+ --ignore-hold
|
|
|
|
|
+ --force-yes
|
|
|
|
|
+ --trivial-only
|
|
|
|
|
+ --reinstall --solver' -- "$cur" ) )
|
|
|
|
|
+ return 0
|
|
|
|
|
+ ;;
|
|
|
|
|
+ update)
|
|
|
|
|
+ COMPREPLY=( $( compgen -W '--list-cleanup
|
|
|
|
|
+ ' -- "$cur" ) )
|
|
|
|
|
+ return 0
|
|
|
|
|
+ ;;
|
|
|
|
|
+ list)
|
|
|
|
|
+ COMPREPLY=( $( compgen -W '--installed --upgradable
|
|
|
|
|
+ --manual-installed
|
|
|
|
|
+ -v --verbose
|
|
|
|
|
+ -a --all-versions
|
|
|
|
|
+ ' -- "$cur" ) )
|
|
|
|
|
+ return 0
|
|
|
|
|
+ ;;
|
|
|
|
|
+ show)
|
|
|
|
|
+ COMPREPLY=( $( compgen -W '-a --all-versions
|
|
|
|
|
+ ' -- "$cur" ) )
|
|
|
|
|
+ return 0
|
|
|
|
|
+ ;;
|
|
|
|
|
+ esac
|
|
|
|
|
+ fi
|
|
|
|
|
+
|
|
|
|
|
+ # specific command arguments
|
|
|
|
|
+ if [[ -n $command ]]; then
|
|
|
|
|
+ case $command in
|
|
|
|
|
+ remove|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
|
|
|
|
|
+ return 0
|
|
|
|
|
+ ;;
|
|
|
|
|
+ install|show|list)
|
|
|
|
|
+ COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" \
|
|
|
|
|
+ 2> /dev/null ) )
|
|
|
|
|
+ return 0
|
|
|
|
|
+ ;;
|
|
|
|
|
+ edit-sources)
|
|
|
|
|
+ COMPREPLY=( $( compgen -W '$( command ls $sourcesdir )' \
|
|
|
|
|
+ -- "$cur" ) )
|
|
|
|
|
+ return 0
|
|
|
|
|
+ ;;
|
|
|
|
|
+ esac
|
|
|
|
|
+ fi
|
|
|
|
|
+
|
|
|
|
|
+ # no command yet, show what commands we have
|
|
|
|
|
+ if [ "$command" = "" ]; then
|
|
|
|
|
+ COMPREPLY=( $( compgen -W '${COMMANDS[@]}' -- "$cur" ) )
|
|
|
|
|
+ fi
|
|
|
|
|
+
|
|
|
|
|
+ return 0
|
|
|
|
|
+} &&
|
|
|
|
|
+complete -F _apt apt
|
|
|
|
|
+
|
|
|
|
|
+# ex: ts=4 sw=4 et filetype=sh
|