[Bash-completion-commits] [SCM] bash-completion branch, master, updated. 563e4d355dd360a89477745e1b04eb75ff609f71

Ville Skyttä ville.skytta at iki.fi
Sat Jan 2 08:36:08 UTC 2010


The following commit has been merged in the master branch:
commit 563e4d355dd360a89477745e1b04eb75ff609f71
Author: Ville Skyttä <ville.skytta at iki.fi>
Date:   Sat Jan 2 10:35:18 2010 +0200

    Split mount and umount completion into contrib/mount.

diff --git a/CHANGES b/CHANGES
index 399f434..33a78b4 100644
--- a/CHANGES
+++ b/CHANGES
@@ -51,6 +51,7 @@ bash-completion (2.x)
   * Deprecate modules completion, upstream modules >= 3.2.7 ships one.
   * Protect grep invocations from user aliases (Alioth: 312143).
   * Split sshfs completion from contrib/ssh into contrib/sshfs.
+  * Split mount and umount completion into contrib/mount.
 
   [ Freddy Vulto ]
   * Added _get_pword() helper function, thanks to Sung Pae (Alioth: #312030)
diff --git a/Makefile.am b/Makefile.am
index aa67708..8ce08a4 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -80,6 +80,7 @@ bashcomp_DATA = contrib/abook \
 		contrib/mkinitrd \
 		contrib/mock \
 		contrib/monodevelop \
+		contrib/mount \
 		contrib/mplayer \
 		contrib/msynctool \
 		contrib/mtx \
diff --git a/bash_completion b/bash_completion
index 0747fd6..8eeb1cc 100644
--- a/bash_completion
+++ b/bash_completion
@@ -987,75 +987,6 @@ _chgrp()
 complete -F _chgrp -o filenames chgrp
 
 
-# umount(8) completion. This relies on the mount point being the third
-# space-delimited field in the output of mount(8)
-#
-_umount()
-{
-    local cur IFS=$'\n'
-
-    COMPREPLY=()
-    cur=`_get_cword`
-
-    COMPREPLY=( $( compgen -W '$( mount | cut -d" " -f 3 )' -- "$cur" ) )
-
-    return 0
-}
-complete -F _umount -o dirnames umount
-
-
-# mount(8) completion. This will pull a list of possible mounts out of
-# /etc/{,v}fstab, unless the word being completed contains a ':', which
-# would indicate the specification of an NFS server. In that case, we
-# query the server for a list of all available exports and complete on
-# that instead.
-#
-_mount()
-{
-    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
-
-    if [[ -n "$sm" && "$cur" == *:* ]]; then
-        COMPREPLY=( $( compgen -W "$( $sm -e ${cur%%:*} | \
-            awk 'NR>1 {print $1}' )" -- "$cur" ) )
-    elif [[ "$cur" == //* ]]; then
-        host=${cur#//}
-        host=${host%%/*}
-        if [ -n "$host" ]; then
-            COMPREPLY=( $( compgen -P "//$host" -W \
-                "$( smbclient -d 0 -NL $host 2>/dev/null |
-                sed -ne '/^['"$'\t '"']*Sharename/,/^$/p' |
-                sed -ne '3,$s|^[^A-Za-z]*\([^'"$'\t '"']*\).*$|/\1|p' )" \
-                    -- "${cur#//$host}" ) )
-        fi
-    elif [ -r /etc/vfstab ]; then
-        # Solaris
-        COMPREPLY=( $( compgen -W "$( awk '! /^[ \t]*#/ {if ($3 ~ /\//) print $3}' /etc/vfstab )" -- "$cur" ) )
-    elif [ ! -e /etc/fstab ]; then
-        # probably Cygwin
-        COMPREPLY=( $( compgen -W "$( mount | awk '! /^[ \t]*#/ {if ($3 ~ /\//) print $3}' )" -- "$cur" ) )
-    else
-        # probably Linux
-        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=( $( compgen -W "$( awk '! /^[ \t]*#/ {if ($2 ~ /\//) print $2}' /etc/fstab )" -- "$cur" ) )
-        fi
-    fi
-
-    return 0
-} # _mount()
-complete -F _mount -o default -o dirnames mount
-
-
 # Linux rmmod(8) completion. This completes on a list of all currently
 # installed kernel modules.
 #
diff --git a/contrib/mount b/contrib/mount
new file mode 100644
index 0000000..0474df0
--- /dev/null
+++ b/contrib/mount
@@ -0,0 +1,80 @@
+# mount(8) completion. This will pull a list of possible mounts out of
+# /etc/{,v}fstab, unless the word being completed contains a ':', which
+# would indicate the specification of an NFS server. In that case, we
+# query the server for a list of all available exports and complete on
+# that instead.
+#
+have mount &&
+{
+
+_mount()
+{
+    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
+
+    if [[ -n "$sm" && "$cur" == *:* ]]; then
+        COMPREPLY=( $( compgen -W "$( $sm -e ${cur%%:*} | \
+            awk 'NR>1 {print $1}' )" -- "$cur" ) )
+    elif [[ "$cur" == //* ]]; then
+        host=${cur#//}
+        host=${host%%/*}
+        if [ -n "$host" ]; then
+            COMPREPLY=( $( compgen -P "//$host" -W \
+                "$( smbclient -d 0 -NL $host 2>/dev/null |
+                sed -ne '/^['"$'\t '"']*Sharename/,/^$/p' |
+                sed -ne '3,$s|^[^A-Za-z]*\([^'"$'\t '"']*\).*$|/\1|p' )" \
+                    -- "${cur#//$host}" ) )
+        fi
+    elif [ -r /etc/vfstab ]; then
+        # Solaris
+        COMPREPLY=( $( compgen -W "$( awk '! /^[ \t]*#/ {if ($3 ~ /\//) print $3}' /etc/vfstab )" -- "$cur" ) )
+    elif [ ! -e /etc/fstab ]; then
+        # probably Cygwin
+        COMPREPLY=( $( compgen -W "$( mount | awk '! /^[ \t]*#/ {if ($3 ~ /\//) print $3}' )" -- "$cur" ) )
+    else
+        # probably Linux
+        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=( $( compgen -W "$( awk '! /^[ \t]*#/ {if ($2 ~ /\//) print $2}' /etc/fstab )" -- "$cur" ) )
+        fi
+    fi
+
+    return 0
+} &&
+complete -F _mount -o default -o dirnames mount
+
+# umount(8) completion. This relies on the mount point being the third
+# space-delimited field in the output of mount(8)
+#
+have umount &&
+_umount()
+{
+    local cur IFS=$'\n'
+
+    COMPREPLY=()
+    cur=`_get_cword`
+
+    COMPREPLY=( $( compgen -W '$( mount | cut -d" " -f 3 )' -- "$cur" ) )
+
+    return 0
+} &&
+complete -F _umount -o dirnames umount
+
+}
+
+# Local variables:
+# mode: shell-script
+# sh-basic-offset: 4
+# sh-indent-comment: t
+# indent-tabs-mode: nil
+# End:
+# ex: ts=4 sw=4 et filetype=sh

-- 
bash-completion



More information about the Bash-completion-commits mailing list