[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