[Bash-completion-commits] [bash-completion] 02/02: modprobe: Try parsing help before using hardcoding option list

Ville Skyttä scop-guest at moszumanska.debian.org
Mon Jun 9 06:40:59 UTC 2014


This is an automated email from the git hooks/post-receive script.

scop-guest pushed a commit to branch master
in repository bash-completion.

commit c6ec8f979bb6a6c6bdfeae75749a5be4c5145fdb
Author: Ville Skyttä <ville.skytta at iki.fi>
Date:   Mon Jun 9 09:28:51 2014 +0300

    modprobe: Try parsing help before using hardcoding option list
---
 completions/modprobe              | 26 ++++++++++++++++++--------
 test/lib/completions/modprobe.exp |  4 ++--
 2 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/completions/modprobe b/completions/modprobe
index 10a4a1b..c4048de 100644
--- a/completions/modprobe
+++ b/completions/modprobe
@@ -2,10 +2,13 @@
 
 _modprobe()
 {
-    local cur prev words cword
-    _init_completion || return
+    local cur prev words cword split
+    _init_completion -s || return
 
     case "$prev" in
+        -h|--help|-V|--version)
+            return
+            ;;
         -C|--config)
             _filedir
             return
@@ -20,13 +23,20 @@ _modprobe()
             ;;
     esac
 
+    $split && return
+
     if [[ "$cur" == -* ]]; then
-        COMPREPLY=( $( compgen -W '-a --all -b --use-blacklist -C --config -c
-            --showconfig --dump-modversions -d --dirname --first-time
-            --force-vermagic --force-modversion -f --force -i --ignore-install
-            --ignore-remove -l --list -n --dry-run -q --quiet -R
-            --resolve-alias -r --remove -S --set-version --show-depends -s
-            --syslog -t --type -V --version -v --verbose' -- "$cur" ) )
+        COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) )
+        if [[ ! $COMPREPLY ]]; then
+            COMPREPLY=( $( compgen -W '-a --all -b --use-blacklist -C --config
+                -c --showconfig --dump-modversions -d --dirname --first-time
+                --force-vermagic --force-modversion -f --force -i
+                --ignore-install --ignore-remove -l --list -n --dry-run -q
+                --quiet -R --resolve-alias -r --remove -S --set-version
+                --show-depends -s --syslog -t --type -V --version -v
+                --verbose' -- "$cur" ) )
+        fi
+        [[ $COMPREPLY == *= ]] && compopt -o nospace
         return
     fi
 
diff --git a/test/lib/completions/modprobe.exp b/test/lib/completions/modprobe.exp
index a1cd698..4dccfec 100644
--- a/test/lib/completions/modprobe.exp
+++ b/test/lib/completions/modprobe.exp
@@ -11,8 +11,8 @@ proc teardown {} {
 setup
 
 
-set test "--remov<TAB> should complete \"--remove\""
-assert_complete "--remove" "modprobe --remov" $test
+set test "--al<TAB> should complete \"--all\""
+assert_complete "--all" "modprobe --al" $test
 
 
 sync_after_int

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/bash-completion/bash-completion.git



More information about the Bash-completion-commits mailing list