mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-03-12 04:36:22 -07:00
69 lines
1.9 KiB
Bash
69 lines
1.9 KiB
Bash
# slapt-src(8) completion -*- shell-script -*-
|
|
|
|
_slapt_src()
|
|
{
|
|
local cur prev words cword split
|
|
_init_completion -s -n : || return
|
|
|
|
case "$prev" in
|
|
--config | -c)
|
|
_filedir
|
|
return
|
|
;;
|
|
--search | -s | --postprocess | -p)
|
|
# argument required but no completions available
|
|
return
|
|
;;
|
|
esac
|
|
|
|
$split && return
|
|
|
|
if [[ $cur == -* ]]; then
|
|
COMPREPLY=($(compgen -W '$(_parse_help "$1" --help)' -- "$cur"))
|
|
if [[ ${COMPREPLY-} ]]; then
|
|
[[ $COMPREPLY == *= ]] && compopt -o nospace
|
|
return
|
|
fi
|
|
fi
|
|
|
|
local i t
|
|
# search for last action (-i|-w|-b|-f)
|
|
for ((i = ${#words[@]} - 1; i > 0; i--)); do
|
|
if [[ ${words[i]} == -@([iwfb]|-install|-show|-build|-fetch) ]]; then
|
|
t="all"
|
|
break
|
|
fi
|
|
done
|
|
if [[ $t != all ]]; then
|
|
return
|
|
fi
|
|
|
|
local config="/etc/slapt-get/slapt-srcrc" # default config location
|
|
# search for config
|
|
for ((i = ${#words[@]} - 1; i > 0; i--)); do
|
|
if [[ ${words[i]} == -@(c|-config) ]]; then
|
|
config="${words[i + 1]}"
|
|
__expand_tilde_by_ref config
|
|
break
|
|
fi
|
|
if [[ ${words[i]} == --config=?* ]]; then
|
|
config="${words[i]#*=}"
|
|
break
|
|
fi
|
|
done
|
|
[[ -r $config ]] || return
|
|
|
|
if [[ $cur == *:* ]]; then
|
|
local name=${cur%:*}
|
|
COMPREPLY=($(LC_ALL=C "$1" --config "$config" --search "^$name" \
|
|
2>/dev/null | LC_ALL=C command sed -ne \
|
|
"/^$cur/{s/^$name:\([^ ]*\) .*$/\1/;p}"))
|
|
else
|
|
COMPREPLY=($(LC_ALL=C "$1" --config "$config" --search "^$cur" \
|
|
2>/dev/null | LC_ALL=C command sed -ne "/^$cur/{s/ .*$//;p}"))
|
|
fi
|
|
} &&
|
|
complete -F _slapt_src slapt-src
|
|
|
|
# ex: filetype=sh
|