mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-02 10:01:11 +02:00
28 lines
1.2 KiB
Text
28 lines
1.2 KiB
Text
#compdef getopt ggetopt
|
|
|
|
local -a args aopts
|
|
|
|
# Note: BusyBox getopt is borrowed straight from util-linux, so they're
|
|
# basically identical
|
|
if _pick_variant busybox=BusyBox util-linux='getopt*enhanced' unix --version; then
|
|
args=(
|
|
'(-a --alternative)'{-a,--alternative}'[allow long options with single -]'
|
|
'(: -)'{-h,--help}'[display help information]'
|
|
'*'{-l+,--longoptions=}'[specify long options]:long options'
|
|
'(-n --name)'{-n+,--name=}'[specify program name]:program name'
|
|
'(1 -o --options)'{-o+,--options=}'[specify short options]:short options'
|
|
'(-q --quiet)'{-q,--quiet}'[suppress getopt(3) error messages]'
|
|
'(-Q --quiet-output)'{-Q,--quiet-output}'[suppress normal output]'
|
|
'(-s --shell)'{-s+,--shell=}'[specify shell quoting conventions]:shell:(bash csh tcsh sh)'
|
|
'(: -)'{-T,--test}'[test for enhanced getopt]'
|
|
'(-u --unquoted)'{-u,--unquoted}'[do not quote output]'
|
|
'(: -)'{-V,--version}'[display version information]'
|
|
'(-o --options)1: :_guard "^-*" "short options"'
|
|
'*:argument'
|
|
)
|
|
[[ -n $POSIXLY_CORRECT ]] && aopts+=( -A '-*' )
|
|
else
|
|
args=( '1:short options' '*:argument' )
|
|
fi
|
|
|
|
_arguments -s -S $aopts : $args
|