mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-01-09 20:33:34 -08:00
51 lines
1.4 KiB
Bash
51 lines
1.4 KiB
Bash
# bash completion for secret-tool(1) -*- shell-script -*-
|
|
|
|
_secret_tool()
|
|
{
|
|
local cur prev words cword split
|
|
_init_completion -s || return
|
|
|
|
$split && return
|
|
|
|
local -i i
|
|
local mode word
|
|
for i in ${!words[*]}; do
|
|
if [[ $i -gt 0 && ${words[i]} != -* ]]; then
|
|
((i != cword)) && mode=${words[i]}
|
|
break
|
|
fi
|
|
done
|
|
if [[ ! -v mode ]]; then
|
|
local -a modes
|
|
modes=($("$1" nonexistent-mode 2>&1 |
|
|
while read -r first second third rest; do
|
|
if [[ $first == "${1##*/}" ]]; then
|
|
printf "%s\n" "$second"
|
|
elif [[ $first == usage: && $second == "${1##*/}" ]]; then
|
|
printf "%s\n" "$third"
|
|
fi
|
|
done))
|
|
COMPREPLY=($(compgen -W '${modes[@]}' -- "$cur"))
|
|
return
|
|
fi
|
|
|
|
case $mode in
|
|
store)
|
|
if [[ ${words[*]} != *\ --label[\ =]* ]]; then
|
|
COMPREPLY=($(compgen -W "--label=" -- "$cur"))
|
|
[[ ${COMPREPLY-} == *= ]] && compopt -o nospace
|
|
fi
|
|
;;
|
|
search)
|
|
local -A opts=([--all]="" [--unlock]="")
|
|
for word in "${words[@]:2}"; do
|
|
[[ $word ]] && unset opts["$word"]
|
|
done
|
|
COMPREPLY=($(compgen -W '${opts[@]}' -- "$cur"))
|
|
;;
|
|
esac
|
|
} &&
|
|
complete -F _secret_tool secret-tool
|
|
|
|
# ex: filetype=sh
|