/usr/share/zsh/vendor-completions/_keyringer is in keyringer 0.2.9-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | #compdef keyringer
# Completion for git subcommand
_keyringer_git_complete() {
# TODO: how to call _git() properly?
return
}
_keyringer() {
local curcontext="$curcontext" state line
typeset -A opt_args
# Initial options
local config="$HOME/.keyringer"
# Check if we have initial configuration
if [ ! -d "$config" ]; then
return
fi
# Process config
source $config/config
local keyrings="`ls --color=never $config | sed -e 's/config//' | xargs`"
local keyring_path="`eval echo '$'$words[2]`"
local instances="`echo $keyrings | sed -e 's/ /\\\|/g'`"
_arguments \
'1: :->keyring' \
'2: :->action' \
'3: :->options' \
'4: :->misc' \
'*: :->final'
case $state in
keyring)
_arguments "1:Keyrings:($keyrings)"
;;
action)
if echo $words[2] | grep -qe "$instances"; then
compadd "$@" `KEYRINGER_CHECK_VERSION=false keyringer $words[2] commands`
else
compadd "$@" "init"
fi
;;
options)
case $words[3] in
options|preferences)
compadd "$@" ls edit add
;;
recipients)
compadd "$@" ls edit
;;
ls|tree|encrypt|encrypt-batch|decrypt|edit|append|append-batch|del|rm|recrypt|open)
words[4]="`echo $words[4] | sed -e "s|^/*||"`" # avoid leading slash
compadd "$@" $(KEYRINGER_CHECK_VERSION=false keyringer $words[2] ls -p -d $words[4]'*' 2> /dev/null)
;;
genpair)
compadd "$@" gpg ssh ssl ssl-self
;;
git)
compadd "$@" $(_keyringer_git_complete $words[4])
;;
init)
_files
;;
*)
;;
esac
;;
misc)
case "$words[3]" in
recipients)
words[5]="$(echo $words[5] | sed -e "s|^/||")" # TODO: avoid leading slash
compadd "$@" $(cd $keyring_path/config/recipients && ls --color=never -p $words[5]'*' 2> /dev/null)
;;
genpair)
words[5]="$(echo $words[5] | sed -e "s|^/||")" # TODO: avoid leading slash
compadd "$@" $(KEYRINGER_CHECK_VERSION=false keyringer $words[2] ls -p -d $words[5]'*' 2> /dev/null)
;;
git)
compadd "$@" $(_keyringer_git_complete $words[4] $words[5])
;;
encrypt|encrypt-batch)
_files
;;
*)
;;
esac
;;
*)
if [ $words[3] == "git" ]; then
# TODO
true
fi
;;
esac
}
_keyringer "$@"
|