mirror of git://git.code.sf.net/p/zsh/code
Fix merge
commit
510a11834a
@ -0,0 +1,40 @@
|
|||||||
|
#compdef chsh chpass
|
||||||
|
case $OSTYPE in
|
||||||
|
(darwin*|*bsd*)
|
||||||
|
_arguments : \
|
||||||
|
'-s[Specify user login shell]:shell:(${(Z+Cn+)"$(</etc/shells)"})' \
|
||||||
|
"-l[Specify location of user]:node:" \
|
||||||
|
"-u[Specify authentication name]:auth user:" \
|
||||||
|
"1:user name:_users"
|
||||||
|
;;
|
||||||
|
(linux-gnu)
|
||||||
|
if { =chsh -v } >&/dev/null
|
||||||
|
then
|
||||||
|
local -a opts shells
|
||||||
|
shells=( $(=chsh -l) )
|
||||||
|
_arguments : \
|
||||||
|
"(-)-s[Specify your login shell]:shell:($shells)" \
|
||||||
|
"(-)--shell[Specify your login shell]:shell:($shells)" \
|
||||||
|
"(-)-l[Print shells in /etc/shells]" \
|
||||||
|
"(-)--list-shells[Print shells in /etc/shells]" \
|
||||||
|
"(-)-u[Print a usage message and exit]" \
|
||||||
|
"(-)--help[Print a usage message and exit]" \
|
||||||
|
"(-)-v[Print version information and exit]" \
|
||||||
|
"(-)--version[Print version information and exit]" \
|
||||||
|
"1:user name:_users"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
# else fall through
|
||||||
|
;&
|
||||||
|
(*)
|
||||||
|
local s=''
|
||||||
|
# Use $s to cause all options to be treated as mutually exclusive
|
||||||
|
[[ $words[CURRENT-1] = -* ]] && s="(-)$words[CURRENT-1]"
|
||||||
|
# This fiddling with $s is a hack to cause "_arguments : --" to use
|
||||||
|
# the /etc/shells listing for -s or --shell even when the description
|
||||||
|
# of that option has been pulled from the GNU --help output.
|
||||||
|
[[ $words[CURRENT-1] = (-s|--shell) ]] &&
|
||||||
|
s="$s"'[ ]:shell:(${(Z+Cn+)"$(</etc/shells)"})'
|
||||||
|
_arguments : $s "1:user name:_users" --
|
||||||
|
;;
|
||||||
|
esac
|
Loading…
Reference in New Issue