summary refs log tree commit diff
path: root/Completion/Unix/Command/_doas
blob: 3ef036a887a7a4ab18d56b7b70b6f82270a98335 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#compdef doas

local environ e cmd cpp
local -a _comp_priv_prefix
local -A opt_args

zstyle -a ":completion:${curcontext}:" environ environ

for e in "${environ[@]}"
do local -x "$e"
done

cmd="$words[1]"
cpp='_comp_priv_prefix=( $cmd -n ${(kv)opt_args[(I)-u]} )'
_arguments -s -S -A '-*' : \
  '(: * -)-L[clear any persisted authorizations]' \
  '(-L)-a+[specify authentication style]:authentication style' \
  '(-L -n -s)-C+[check config file and report on command matching]:config:_files' \
  '(-C -L)-n[non-interactive: fail rather than prompt for a password]' \
  '(-C -L *)-s[run a shell]' \
  '(-L)-u+[run command as specified user]: :_users' \
  "(-)1: :{ $cpp; _command_names -e }" \
  "*:: :{ $cpp; _normal }"