mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-07-11 16:51:26 +02:00
* Update _command_names to add **/sbin to PATH when not otherwise overridden and _comp_priv_prefix is set. This ensures that, on systems where unprivileged users don't have **/sbin in their PATHs, we can still complete those commands when they try to run them with e.g. sudo * Update functions for privilege-gaining commands to use the aforementioned mechanism * Fix some other minor issues in _pfexec and _doas Changes from the posted diff: * Fix a minor redundancy in _doas * Add _c_p_p=( '' ) hack to _su
23 lines
720 B
Text
23 lines
720 B
Text
#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 }"
|