[Bash-completion-commits] [SCM] bash-completion branch, master, updated. b3f8e617ac7569a4c6bd3f3f6e6e3bc51d61d3f4
Guillaume Rousse
guillomovitch at zarb.org
Fri May 29 07:57:25 UTC 2009
The following commit has been merged in the master branch:
commit 872b8befe8018f54226b961e9ff9b6045e187d77
Author: Guillaume Rousse <guillomovitch at zarb.org>
Date: Wed May 27 18:51:09 2009 +0200
split update-alternatives completion
diff --git a/Makefile.am b/Makefile.am
index 897ee09..c8ae842 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -96,6 +96,7 @@ bashcomp_DATA = contrib/ant \
contrib/tar \
contrib/unace \
contrib/unrar \
+ contrib/update-alternatives \
contrib/vncviewer \
contrib/wodim \
contrib/wvdial \
diff --git a/bash_completion b/bash_completion
index 944464b..6b10a5e 100644
--- a/bash_completion
+++ b/bash_completion
@@ -3850,98 +3850,6 @@ _querybts()
} &&
complete -F _querybts $filenames querybts
-# update-alternatives completion
-#
-have update-alternatives && {
-_installed_alternatives()
-{
- local admindir
- # find the admin dir
- for i in alternatives dpkg/alternatives rpm/alternatives; do
- [ -d /var/lib/$i ] && admindir=/var/lib/$i && break
- done
- for (( i=1; i < COMP_CWORD; i++ )); do
- if [[ "${COMP_WORDS[i]}" == --admindir ]]; then
- admindir=${COMP_WORDS[i+1]}
- break
- fi
- done
- COMPREPLY=( $( compgen -W '$( command ls $admindir )' -- $cur ) )
-}
-
-_update_alternatives()
-{
- local cur prev mode args i
-
- COMPREPLY=()
- cur=`_get_cword`
- prev=${COMP_WORDS[COMP_CWORD-1]}
-
- case "$prev" in
- --@(altdir|admindir))
- _filedir -d
- return 0
- ;;
- --@(help|version))
- return 0
- ;;
- esac
-
- # find which mode to use and how many real args used so far
- for (( i=1; i < COMP_CWORD; i++ )); do
- if [[ "${COMP_WORDS[i]}" == --@(install|remove|auto|display|config|remove-all) ]]; then
- mode=${COMP_WORDS[i]}
- args=$(($COMP_CWORD - i))
- break
- fi
- done
-
- case $mode in
- --install)
- case $args in
- 1)
- _filedir
- ;;
- 2)
- _installed_alternatives
- ;;
- 3)
- _filedir
- ;;
- esac
- ;;
- --remove)
- case $args in
- 1)
- _installed_alternatives
- ;;
- 2)
- _filedir
- ;;
- esac
- ;;
- --auto)
- _installed_alternatives
- ;;
- --remove-all)
- _installed_alternatives
- ;;
- --display)
- _installed_alternatives
- ;;
- --config)
- _installed_alternatives
- ;;
- *)
- COMPREPLY=( $( compgen -W '--verbose --quiet --help --version \
- --altdir --admindir' -- $cur ) \
- $( compgen -W '--install --remove --auto --display \
- --config' -- $cur ) )
- esac
-}
-complete -F _update_alternatives update-alternatives alternatives
-}
-
# lilo(8) completion
#
have lilo && {
diff --git a/contrib/update-alternatives b/contrib/update-alternatives
new file mode 100644
index 0000000..021e3a1
--- /dev/null
+++ b/contrib/update-alternatives
@@ -0,0 +1,94 @@
+# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
+# ex: ts=8 sw=8 noet filetype=sh
+#
+# bash completion for update-alternatives
+
+have update-alternatives && {
+_installed_alternatives()
+{
+ local admindir
+ # find the admin dir
+ for i in alternatives dpkg/alternatives rpm/alternatives; do
+ [ -d /var/lib/$i ] && admindir=/var/lib/$i && break
+ done
+ for (( i=1; i < COMP_CWORD; i++ )); do
+ if [[ "${COMP_WORDS[i]}" == --admindir ]]; then
+ admindir=${COMP_WORDS[i+1]}
+ break
+ fi
+ done
+ COMPREPLY=( $( compgen -W '$( command ls $admindir )' -- $cur ) )
+}
+
+_update_alternatives()
+{
+ local cur prev mode args i
+
+ COMPREPLY=()
+ cur=`_get_cword`
+ prev=${COMP_WORDS[COMP_CWORD-1]}
+
+ case "$prev" in
+ --@(altdir|admindir))
+ _filedir -d
+ return 0
+ ;;
+ --@(help|version))
+ return 0
+ ;;
+ esac
+
+ # find which mode to use and how many real args used so far
+ for (( i=1; i < COMP_CWORD; i++ )); do
+ if [[ "${COMP_WORDS[i]}" == --@(install|remove|auto|display|config|remove-all) ]]; then
+ mode=${COMP_WORDS[i]}
+ args=$(($COMP_CWORD - i))
+ break
+ fi
+ done
+
+ case $mode in
+ --install)
+ case $args in
+ 1)
+ _filedir
+ ;;
+ 2)
+ _installed_alternatives
+ ;;
+ 3)
+ _filedir
+ ;;
+ esac
+ ;;
+ --remove)
+ case $args in
+ 1)
+ _installed_alternatives
+ ;;
+ 2)
+ _filedir
+ ;;
+ esac
+ ;;
+ --auto)
+ _installed_alternatives
+ ;;
+ --remove-all)
+ _installed_alternatives
+ ;;
+ --display)
+ _installed_alternatives
+ ;;
+ --config)
+ _installed_alternatives
+ ;;
+ *)
+ COMPREPLY=( $( compgen -W '--verbose --quiet --help --version \
+ --altdir --admindir' -- $cur ) \
+ $( compgen -W '--install --remove --auto --display \
+ --config' -- $cur ) )
+ esac
+}
+complete -F _update_alternatives update-alternatives alternatives
+}
--
bash-completion
More information about the Bash-completion-commits
mailing list