From 554ab3d1bde90eb4cff3b871f23dc52d8755844d Mon Sep 17 00:00:00 2001 From: David Paleino Date: Fri, 5 Jun 2009 08:38:19 +0200 Subject: [PATCH] Split aptitude-related completions to contrib/aptitude --- CHANGES | 1 + Makefile.am | 1 + bash_completion | 97 ------------------------------------------------ contrib/aptitude | 95 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 97 insertions(+), 97 deletions(-) create mode 100644 contrib/aptitude diff --git a/CHANGES b/CHANGES index c06b9d90..fdcad443 100644 --- a/CHANGES +++ b/CHANGES @@ -23,6 +23,7 @@ bash-completion (1.x) * Split chkconfig completion to contrib/chkconfig * Split chsh completion to contrib/chsh * Split apt_build completion to contrib/apt-build + * Split aptitude-related completions to contrib/aptitude [ Ville Skyttä ] * Split yum and yum-arch completion into contrib/yum. diff --git a/Makefile.am b/Makefile.am index f2f35729..c71a535d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -5,6 +5,7 @@ bashcompdir = $(sysconfdir)/bash_completion.d bashcomp_DATA = contrib/ant \ contrib/apache2ctl \ contrib/apt-build \ + contrib/aptitude \ contrib/aspell \ contrib/autorpm \ contrib/bind-utils \ diff --git a/bash_completion b/bash_completion index 439e6309..59160ba4 100644 --- a/bash_completion +++ b/bash_completion @@ -1955,103 +1955,6 @@ _apt_cache() } && complete -F _apt_cache $filenames apt-cache - -# Debian aptitude(1) completion -# -have aptitude && { -have grep-status && { -_comp_dpkg_hold_packages() -{ - grep-status -P -e "^$1" -a -FStatus 'hold' -n -s Package -} -} || { -_comp_dpkg_hold_packages() -{ - grep -B 2 'hold' /var/lib/dpkg/status | grep "Package: $1" \ - | cut -d\ -f2 -} -} - -_aptitude() -{ - local cur dashoptions prev special i - - COMPREPLY=() - cur=`_get_cword` - prev=${COMP_WORDS[COMP_CWORD-1]} - - - dashoptions='-S -u -i -h --help --version -s --simulate -d \ - --download-only -P --prompt -y --assume-yes -F \ - --display-format -O --sort -w --width -f -r -g \ - --with-recommends --with-suggests -R -G \ - --without-recommends --without-suggests -t \ - --target-release -V --show-versions -D --show-deps\ - -Z -v --verbose --purge-unused --schedule-only' - - for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do - if [[ ${COMP_WORDS[i]} == @(install|reinstall|hold|unhold|markauto|unmarkauto|dist-upgrade|full-upgrade|download|show|forbid-version|purge|remove|changelog|why|why-not|keep|keep-all|build-dep) ]]; then - special=${COMP_WORDS[i]} - fi - #exclude some mutually exclusive options - [[ ${COMP_WORDS[i]} == '-u' ]] && dashoptions=${dashoptions/-i} - [[ ${COMP_WORDS[i]} == '-i' ]] && dashoptions=${dashoptions/-u} - done - - if [[ -n "$special" ]]; then - case $special in - @(install|hold|markauto|unmarkauto|dist-upgrade|full-upgrade|download|show|changelog|why|why-not|build-dep)) - COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) ) - return 0 - ;; - @(purge|remove|reinstall|forbid-version)) - COMPREPLY=( $( _comp_dpkg_installed_packages $cur ) ) - return 0 - ;; - unhold) - COMPREPLY=( $( _comp_dpkg_hold_packages $cur ) ) - return 0 - ;; - - esac - fi - - case $prev in - # don't complete anything if these options are found - @(autoclean|clean|forget-new|search|upgrade|safe-upgrade|update|keep-all)) - return 0 - ;; - - -S) - _filedir - return 0 - ;; - - -@(t|-target-release|-default-release)) - COMPREPLY=( $( apt-cache policy | \ - 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 "$dashoptions" -- $cur ) ) - else - COMPREPLY=( $( compgen -W 'update upgrade safe-upgrade forget-new clean \ - autoclean install reinstall remove \ - hold unhold purge markauto unmarkauto why why-not \ - dist-upgrade full-upgrade download search show \ - forbid-version changelog keep-all build-dep' -- $cur ) ) - fi - - - return 0 -} -complete -F _aptitude $default aptitude -} - # This function provides simple user@host completion # _user_at_host() { diff --git a/contrib/aptitude b/contrib/aptitude new file mode 100644 index 00000000..ea8d103a --- /dev/null +++ b/contrib/aptitude @@ -0,0 +1,95 @@ +# Debian aptitude(1) completion +# +have aptitude && { +have grep-status && { +_comp_dpkg_hold_packages() +{ + grep-status -P -e "^$1" -a -FStatus 'hold' -n -s Package +} +} || { +_comp_dpkg_hold_packages() +{ + grep -B 2 'hold' /var/lib/dpkg/status | grep "Package: $1" \ + | cut -d\ -f2 +} +} + +_aptitude() +{ + local cur dashoptions prev special i + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + + dashoptions='-S -u -i -h --help --version -s --simulate -d \ + --download-only -P --prompt -y --assume-yes -F \ + --display-format -O --sort -w --width -f -r -g \ + --with-recommends --with-suggests -R -G \ + --without-recommends --without-suggests -t \ + --target-release -V --show-versions -D --show-deps\ + -Z -v --verbose --purge-unused --schedule-only' + + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do + if [[ ${COMP_WORDS[i]} == @(install|reinstall|hold|unhold|markauto|unmarkauto|dist-upgrade|full-upgrade|download|show|forbid-version|purge|remove|changelog|why|why-not|keep|keep-all|build-dep) ]]; then + special=${COMP_WORDS[i]} + fi + #exclude some mutually exclusive options + [[ ${COMP_WORDS[i]} == '-u' ]] && dashoptions=${dashoptions/-i} + [[ ${COMP_WORDS[i]} == '-i' ]] && dashoptions=${dashoptions/-u} + done + + if [[ -n "$special" ]]; then + case $special in + @(install|hold|markauto|unmarkauto|dist-upgrade|full-upgrade|download|show|changelog|why|why-not|build-dep)) + COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) ) + return 0 + ;; + @(purge|remove|reinstall|forbid-version)) + COMPREPLY=( $( _comp_dpkg_installed_packages $cur ) ) + return 0 + ;; + unhold) + COMPREPLY=( $( _comp_dpkg_hold_packages $cur ) ) + return 0 + ;; + + esac + fi + + case $prev in + # don't complete anything if these options are found + @(autoclean|clean|forget-new|search|upgrade|safe-upgrade|update|keep-all)) + return 0 + ;; + + -S) + _filedir + return 0 + ;; + + -@(t|-target-release|-default-release)) + COMPREPLY=( $( apt-cache policy | \ + 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 "$dashoptions" -- $cur ) ) + else + COMPREPLY=( $( compgen -W 'update upgrade safe-upgrade forget-new clean \ + autoclean install reinstall remove \ + hold unhold purge markauto unmarkauto why why-not \ + dist-upgrade full-upgrade download search show \ + forbid-version changelog keep-all build-dep' -- $cur ) ) + fi + + + return 0 +} +complete -F _aptitude $default aptitude +}