summaryrefslogtreecommitdiffstats
path: root/completions/sbopkg
diff options
context:
space:
mode:
Diffstat (limited to 'completions/sbopkg')
-rw-r--r--completions/sbopkg45
1 files changed, 21 insertions, 24 deletions
diff --git a/completions/sbopkg b/completions/sbopkg
index 16bd58f..a2fc5a6 100644
--- a/completions/sbopkg
+++ b/completions/sbopkg
@@ -1,31 +1,30 @@
# bash completion for sbopkg(8) -*- shell-script -*-
-_sbopkg()
+_comp_cmd_sbopkg()
{
- local cur prev words cword
- _init_completion || return
+ local cur prev words cword comp_args
+ _comp_initialize -- "$@" || return
if [[ $cur == -* ]]; then
- COMPREPLY=($(compgen -W '$(_parse_help "$1" -h)' -- "$cur"))
+ _comp_compgen_help -- -h
[[ ${COMPREPLY-} ]] && return
fi
case "$prev" in
-e)
- COMPREPLY=($(compgen -W 'ask continue stop' -- "$cur"))
+ _comp_compgen -- -W 'ask continue stop'
return
;;
-f)
- _filedir
+ _comp_compgen_filedir
return
;;
-d)
- _filedir -d
+ _comp_compgen_filedir -d
return
;;
-V)
- COMPREPLY=($(compgen -W "?
- $(sbopkg -V '?' 2>&1 | cut -s -f1)" -- "$cur"))
+ _comp_compgen_split -- "? $(sbopkg -V '?' 2>&1 | cut -s -f1)"
return
;;
-i | -b) ;;
@@ -35,20 +34,20 @@ _sbopkg()
;;
esac
- local i config
+ local i REPLY config
config="/etc/sbopkg/sbopkg.conf"
- for ((i = ${#words[@]} - 1; i > 0; i--)); do
+ for ((i = ${#words[@]} - 2; i > 0; i--)); do
if [[ ${words[i]} == -f ]]; then
- config="${words[i + 1]}"
- __expand_tilde_by_ref config
+ _comp_expand_tilde "${words[i + 1]}"
+ config=$REPLY
break
fi
done
- [[ -r $config ]] || return
- . $config
+ [[ -f $config && -r $config ]] || return
+ . "$config"
- for ((i = 1; i < ${#words[@]}; i++)); do
+ for ((i = 1; i < ${#words[@]} - 1; i++)); do
case "${words[i]}" in
-V)
REPO_NAME="${words[i + 1]%%/*}"
@@ -59,15 +58,13 @@ _sbopkg()
;;
esac
done
- [[ -r $REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT ]] || return
+ local file=${REPO_ROOT-}/${REPO_NAME-}/${REPO_BRANCH-}/SLACKBUILDS.TXT
+ [[ -f $file && -r $file ]] || return
- COMPREPLY=($(command sed -ne "/^SLACKBUILD NAME: $cur/{s/^SLACKBUILD NAME: //;p}" \
- $REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT)
- $(
- cd $QUEUEDIR
- compgen -f -X "!*.sqf" -- "$cur"
- ))
+ _comp_compgen_split -l -- "$(command sed -ne "s/^SLACKBUILD NAME: //p" \
+ "$file")"
+ _comp_compgen -aC "$QUEUEDIR" -- -f -X "!*.sqf"
} &&
- complete -F _sbopkg sbopkg
+ complete -F _comp_cmd_sbopkg sbopkg
# ex: filetype=sh