zsh-workers
 help / color / mirror / code / Atom feed
51699269483746fb33bc6e0745bb51ff2c014f87 blob 1448 bytes (raw)

 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
50
51
52
53
 
#compdef chroot gchroot

local variant ret=1
local -a context line state state_descr args
local -A opt_args

_pick_variant -r variant gnu='Free Soft' unix --version

variant+=-$OSTYPE

case $variant in
  gnu-*)
    args=(
      '(: -)--help[display help information]'
      '(: -)--version[display version information]'
      '--groups=[specify supplemental group memberships]: :_sequence -s , _groups'
      '--userspec=[specify user and group to run process as]: :->userspecs'
      '--skip-chdir[do not change working directory to /]'
    )
    ;;
  *-openbsd*)
    args=(
      '-u+[specify user to run process as]: :_users'
      '-g+[specify group to run process as, and supplemental group memberships]: :_sequence -s , _groups'
    )
    ;;
  *-(darwin|dragonfly|freebsd|netbsd)*)
    args=(
      '-u+[specify user to run process as]: :_users'
      '-g+[specify group to run process as]: :_groups'
      '-G+[specify supplemental group memberships]: :_sequence -s , _groups'
    )
    ;;
esac

args+=( '1:new root directory:_directories' '*:::command:_normal' )

_arguments -s -S : $args && ret=0

# @todo user:group specs are probably used often enough to justify making a type
# function for this (see also `chown`, `cpio`, `rsync`, ...)
[[ $state == userspecs ]] &&
if compset -P '*:*:'; then
  ret=1
elif compset -P '*:'; then
  _groups && ret=0
elif compset -S ':*'; then
  _users && ret=0
else
  _users -qS : && ret=0
fi

return ret
debug log:

solving 516992694 ...
found 516992694 in https://git.vuxu.org/mirror/zsh/

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).