The following commit has been merged in the master branch:
commit 66b0cd72af4b35534c7fbe71a6d1a68ff795a758
Author: Sergey V <[email protected]>
Date:   Fri Nov 5 18:14:01 2010 +0300

    slackware: update sbopkg completion

diff --git a/completions/slackware b/completions/slackware
index 4a28fad..ca45b4a 100644
--- a/completions/slackware
+++ b/completions/slackware
@@ -157,48 +157,54 @@ _sbopkg()
     local cur prev
     _get_comp_words_by_ref cur prev
 
-    case $prev in
-       -f)
-           _filedir
-           return 0
-           ;;
-       -s|-g)
-           return 0
-           ;;
-       -V)
-           COMPREPLY='?'
-           return 0;
-           ;;
-       -i|-b)
-           COMPREPLY=( $( grep "^SLACKBUILD NAME: $cur" \
-               /var/lib/sbopkg/SBo/13.1/SLACKBUILDS.TXT | cut -f3- -d\  ) )
-           return 0
-           ;;
-    esac
+    if [[ "$cur" == --* ]]; then
+       COMPREPLY=( $( compgen -W '--help' -- "$cur" ) )
+       return 0
+    fi
 
-    local config=/etc/sbopkg/sbopkg.conf
+    if [[ "$cur" == -* ]]; then
+       COMPREPLY=( $( compgen -W '-b -c -d -e -f -g -h -i -k -l \
+                                  -o -P -p -q -R -r -s -u -V -v' -- "$cur" ) )
+       return 0
+    fi
 
+    local config=/etc/sbopkg/sbopkg.conf
     for (( i=${#words[@]}-1; i>0; i-- )); do
        if [[ ${words[i]} == '-f' ]]; then
            config="${words[i+1]}"
-           break
        fi
     done
+    
+    if [ -e $config ]; then
+       . $config
+    fi
 
     if [ ! -r "$config" ]; then
        return 0
     fi
+       
+    for (( i=${#words[@]}-1; i>0; i-- )); do
+       if [[ ${words[i]} == '-V' ]]; then
+           REPO_NAME=`echo ${words[i+1]} | cut -f1 -d/`
+           REPO_BRANCH=`echo ${words[i+1]} | cut -f2 -d/`
+       fi
+    done
 
-    if [[ "$cur" == --* ]]; then
-       COMPREPLY=( $( compgen -W '--help' -- "$cur" ) )
-       return 0
-    fi
+    case $prev in
+       -f)
+           _filedir
+           return 0
+           ;;
+       -s|-g|-V)
+           return 0
+           ;;
+       -i|-b)
+           COMPREPLY=( $( grep "^SLACKBUILD NAME: $cur" \
+               $REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT | cut -f3- 
-d\  ) )
+           return 0
+           ;;
+    esac
 
-    if [[ "$cur" == -* ]]; then
-       COMPREPLY=( $( compgen -W '-b -c -d -e -f -g -h -i -k -l \
-                                  -o -P -p -q -R -r -s -u -V -v' -- "$cur" ) )
-       return 0
-    fi
 } && complete -F _sbopkg sbopkg -o plusdirs
 
 }

-- 
bash-completion

_______________________________________________
Bash-completion-commits mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/bash-completion-commits

Reply via email to