[Bash-completion-commits] [SCM] bash-completion branch, master, updated. 1.3-235-g26ae770
Sergey V
sftp.mtuci at gmail.com
Mon May 2 10:27:44 UTC 2011
The following commit has been merged in the master branch:
commit 207789bc7e296a5de0e16e21165ef9d853cf288c
Author: Sergey V <sftp.mtuci at gmail.com>
Date: Thu Jan 6 05:52:00 2011 +0300
slackware: sbopkg: move sbopkg completion to separate file
diff --git a/completions/sbopkg b/completions/sbopkg
new file mode 100644
index 0000000..c1655ed
--- /dev/null
+++ b/completions/sbopkg
@@ -0,0 +1,83 @@
+# bash completion for sbopkg tool
+#
+# (c) Igor Murzov <igor at gplsoft.org>
+# (c) Sergey V. <sftp.mtuci at gmail.com>
+
+have sbopkg &&
+_sbopkg()
+{
+ COMPREPLY=()
+ local cur prev
+ _get_comp_words_by_ref cur prev
+
+ 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
+
+ case $prev in
+ -e)
+ COMPREPLY=( $( compgen -W 'ask continue stop' -- "$cur" ) )
+ return 0
+ ;;
+ -f)
+ _filedir
+ return 0
+ ;;
+ -d)
+ _filedir -d
+ return 0
+ ;;
+ -s|-g)
+ # argument required but no completions available
+ return 0
+ ;;
+ esac
+
+ local config="/etc/sbopkg/sbopkg.conf"
+ local words
+ _get_comp_words_by_ref words
+
+ for (( i=${#words[@]}-1; i>0; i-- )); do
+ if [[ ${words[i]} == '-f' ]]; then
+ config="${words[i+1]}"
+ break
+ fi
+ done
+
+ if [ ! -r "$config" ]; then
+ return 0
+ fi
+
+ . $config
+
+ for (( i=1; i<${#words[@]}; i++ )); do
+ case "${words[i]}" in
+ '-V')
+ REPO_NAME="${words[i+1]%%/*}"
+ REPO_BRANCH="${words[i+1]#*/}"
+ ;;
+ '-d')
+ REPO_ROOT="${words[i+1]}"
+ ;;
+ esac
+ done
+
+ case $prev in
+ -V)
+ COMPREPLY=( $( compgen -W "? \
+ `sbopkg -V ? 2>&1 | cut -s -f1`" -- "$cur" ) )
+ return 0
+ ;;
+ -i|-b)
+ if [ ! -r "$REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT" ]; then
+ return 0
+ fi
+ COMPREPLY=( $( grep "^SLACKBUILD NAME: $cur" \
+ $REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT | cut -f3- -d\ ) )
+ return 0
+ ;;
+ esac
+
+} && complete -F _sbopkg sbopkg -o plusdirs
diff --git a/completions/slackware b/completions/slackware
index f3c48c4..c02e92f 100644
--- a/completions/slackware
+++ b/completions/slackware
@@ -149,84 +149,4 @@ _slapt-src()
COMPREPLY=( $( grep "^SLACKBUILD NAME: $cur" "$slck_data" | cut -f3- -d\ ) )
} && complete -F _slapt-src slapt-src
-
-have sbopkg &&
-_sbopkg()
-{
- COMPREPLY=()
- local cur prev
- _get_comp_words_by_ref cur prev
-
- 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
-
- case $prev in
- -e)
- COMPREPLY=( $( compgen -W 'ask continue stop' -- "$cur" ) )
- return 0
- ;;
- -f)
- _filedir
- return 0
- ;;
- -d)
- _filedir -d
- return 0
- ;;
- -s|-g)
- # argument required but no completions available
- return 0
- ;;
- esac
-
- local config="/etc/sbopkg/sbopkg.conf"
- local words
- _get_comp_words_by_ref words
-
- for (( i=${#words[@]}-1; i>0; i-- )); do
- if [[ ${words[i]} == '-f' ]]; then
- config="${words[i+1]}"
- break
- fi
- done
-
- if [ ! -r "$config" ]; then
- return 0
- fi
-
- . $config
-
- for (( i=1; i<${#words[@]}; i++ )); do
- case "${words[i]}" in
- '-V')
- REPO_NAME="${words[i+1]%%/*}"
- REPO_BRANCH="${words[i+1]#*/}"
- ;;
- '-d')
- REPO_ROOT="${words[i+1]}"
- ;;
- esac
- done
-
- case $prev in
- -V)
- COMPREPLY=( $( compgen -W "? \
- `sbopkg -V ? 2>&1 | cut -s -f1`" -- "$cur" ) )
- return 0
- ;;
- -i|-b)
- if [ ! -r "$REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT" ]; then
- return 0
- fi
- COMPREPLY=( $( grep "^SLACKBUILD NAME: $cur" \
- $REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT | cut -f3- -d\ ) )
- return 0
- ;;
- esac
-
-} && complete -F _sbopkg sbopkg -o plusdirs
-
}
--
bash-completion
More information about the Bash-completion-commits
mailing list