mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-11-03 19:11:34 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			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
 |