summaryrefslogtreecommitdiffstats
path: root/extra/source/bash-completion/contrib/sbopkg
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2011-04-25 13:37:00 +0000
committer Eric Hameleers <alien@slackware.com>2018-05-31 22:45:18 +0200
commit75a4a592e5ccda30715f93563d741b83e0dcf39e (patch)
tree502f745607e77a2c4386ad38d818ddcafe81489c /extra/source/bash-completion/contrib/sbopkg
parentb76270bf9e6dd375e495fec92140a79a79415d27 (diff)
downloadcurrent-75a4a592e5ccda30715f93563d741b83e0dcf39e.tar.gz
current-75a4a592e5ccda30715f93563d741b83e0dcf39e.tar.xz
Slackware 13.37slackware-13.37
Mon Apr 25 13:37:00 UTC 2011 Slackware 13.37 x86_64 stable is released! Thanks to everyone who pitched in on this release: the Slackware team, the folks producing upstream code, and linuxquestions.org for providing a great forum for collaboration and testing. The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. Please consider supporting the Slackware project by picking up a copy from store.slackware.com. We're taking pre-orders now, and offer a discount if you sign up for a subscription. As always, thanks to the Slackware community for testing, suggestions, and feedback. :-) Have fun!
Diffstat (limited to 'extra/source/bash-completion/contrib/sbopkg')
-rw-r--r--extra/source/bash-completion/contrib/sbopkg76
1 files changed, 76 insertions, 0 deletions
diff --git a/extra/source/bash-completion/contrib/sbopkg b/extra/source/bash-completion/contrib/sbopkg
new file mode 100644
index 000000000..698fdf18d
--- /dev/null
+++ b/extra/source/bash-completion/contrib/sbopkg
@@ -0,0 +1,76 @@
+# bash completion for sbopkg tool
+
+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
+ ;;
+ -V)
+ COMPREPLY=( $( compgen -W "? \
+ $(sbopkg -V ? 2>&1 | cut -s -f1)" -- "$cur" ) )
+ return 0
+ ;;
+ -i|-b)
+ ;;
+ *)
+ 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
+
+ if [ ! -r "$REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT" ]; then
+ return 0
+ fi
+ COMPREPLY=( $( sed -ne "/^SLACKBUILD NAME: $cur/{s/^SLACKBUILD NAME: //;p}"\
+ $REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT )
+ $( cd $QUEUEDIR; compgen -f -X "!*.sqf" -- "$cur" ) )
+} && complete -F _sbopkg sbopkg