File: _mkdir

package info (click to toggle)
zsh 5.9-8
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 23,856 kB
  • sloc: ansic: 108,138; sh: 6,976; makefile: 722; perl: 687; awk: 291; sed: 16
file content (49 lines) | stat: -rw-r--r-- 1,179 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#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