[Bash-completion-commits] [SCM] bash-completion branch, master, updated. 95cd673b5cbd5658cbf56a56a4113722aab92177

Ville Skyttä ville.skytta at iki.fi
Tue Apr 14 18:24:23 UTC 2009


The following commit has been merged in the master branch:
commit 95cd673b5cbd5658cbf56a56a4113722aab92177
Author: Ville Skyttä <ville.skytta at iki.fi>
Date:   Tue Apr 14 21:24:20 2009 +0300

    Add mount -L and -U completion (Raphaël Droz).

diff --git a/CHANGES b/CHANGES
index f5db787..84d31d7 100644
--- a/CHANGES
+++ b/CHANGES
@@ -40,6 +40,9 @@ bash-completion (1.x)
   [ Guillaume Rousse ]
   * Split mkinitrd completion to contrib/mkinitrd, improve it.
 
+  [ Raphaël Droz ]
+  * Add mount -L and -U completion.
+
  -- David Paleino <d.paleino at gmail.com>  Wed, 25 Mar 2009 23:18:24 +0100
 
 bash-completion (1.0)
diff --git a/bash_completion b/bash_completion
index dfcf518..3ec3f0d 100644
--- a/bash_completion
+++ b/bash_completion
@@ -855,11 +855,12 @@ complete -F _umount $dirnames umount
 #
 _mount()
 {
-	local cur i sm host
+	local cur i sm host prev
 
 	COMPREPLY=()
 	cur=`_get_cword`
 	[[ "$cur" == \\ ]] && cur="/"
+	prev=${COMP_WORDS[COMP_CWORD-1]}
 
 	for i in {,/usr}/{,s}bin/showmount; do [ -x $i ] && sm=$i && break; done
 
@@ -884,8 +885,14 @@ _mount()
 				 | grep "^$cur" ) )
 	else
 		# probably Linux
-		COMPREPLY=( $( awk '! /^[ \t]*#/ {if ($2 ~ /\//) print $2}' \
+		if [ $prev = -L ]; then
+			COMPREPLY=( $( compgen -W '$(sed -ne "s/^[[:space:]]*LABEL=\([^[:space:]]*\).*/\1/p" /etc/fstab )' -- $cur ) )
+		elif [ $prev = -U ]; then
+			COMPREPLY=( $( compgen -W '$(sed -ne "s/^[[:space:]]*UUID=\([^[:space:]]*\).*/\1/p" /etc/fstab )' -- $cur ) )
+		else
+			COMPREPLY=( $( awk '! /^[ \t]*#/ {if ($2 ~ /\//) print $2}' \
 				/etc/fstab | grep "^$cur" ) )
+		fi
 	fi
 
 	return 0

-- 
bash-completion



More information about the Bash-completion-commits mailing list