1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-07-15 06:01:26 +02:00
zsh/Completion/Unix/Command/_mkdir
2019-09-27 00:27:45 +02:00

49 lines
1.2 KiB
Text

#compdef mkdir gmkdir zf_mkdir
local curcontext="$curcontext" variant ret=1
local -a state line expl args aopts=( -A '-*' )
typeset -A opt_args
args=(
'(-m --mode)'{-m,--mode=}'[set permission mode]: :_file_modes'
'(-p --parents)'{-p,--parents}'[make parent directories as needed]'
'*: :->directories'
)
_pick_variant -r variant -b zsh gnu=gnu $OSTYPE --help
case $variant in
gnu|freebsd*|dragonfly*|darwin*)
args+=(
'(-v --verbose)'{-v,--verbose}'[print message for each created directory]'
)
;|
gnu)
aopts=()
if [[ $OSTYPE == linux* ]]; then
args+=(
'(--context)-Z[set SELinux context]'
'(-Z)--context=-[set SELinux context]::SELinux context:_selinux_contexts'
)
fi
args+=(
'(- :)--help[display help information]'
'(- :)--version[display version information]'
)
;;
*) # non-GNU: remove long options
args=( ${${${args:#(|*\))--*}//--[^ )]#/}/\( #\)/} )
;;
esac
_arguments -C -s -S $aopts $args && ret=0
case "$state" in
directories)
_wanted directories expl \
'parent directory or name of directory to create' \
_path_files -/ && ret=0
;;
esac
return ret