zsh-workers
 help / color / mirror / code / Atom feed
8147df00921f8958e5912a964c5e622a48a73135 blob 1328 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
54
55
56
57
58
 
#compdef chflags

local flags args own='-g *(-u$EUID)'

addflags() {
  for 1 2; do
    if [[ $1 = no* ]]; then
      flags+=("(${1#no})$1[set the $2 flag]"
               "($1)${1#no}[unset the $2 flag]")
    else
      flags+=("(no$1)$1[set the $2 flag]"
               "($1)no$1[unset the $2 flag]")
    fi
  done
}

addflags \
  nodump nodump \
  opaque opaque \
  uappnd 'user append-only' \
  uchg 'user immutable'

if (( ! EUID )); then
  addflags \
    arch archived \
    sappnd 'system append-only' \
    schg 'system immutable'
  unset own
fi

if [[ $OSTYPE = (freebsd|dragonfly|darwin)* ]]; then
  addflags \
    hidden hidden \
    uunlnk 'user undeletable'

  [[ $OSTYPE = freebsd* ]] && addflags \
    offline offline \
    rdonly readonly \
    reparse 'Windows reparse point' \
    sparse 'sparse file' \
    system system

  (( EUID )) || addflags sunlnk 'system undeletable'

  args=(
    "-f[don't display diagnostic messages]"
    '-h[act on symlinks]'
    '-v[verbose output]'
  )
fi

_arguments -s -A "-*" $args \
  '(-L -P)-H[follow symlinks on the command line (specify with -R)]' \
  '(-H -P)-L[follow all symlinks (specify with -R)]' \
  '(-L -H)-P[do not follow symlinks (specify with -R)]' \
  '-R[recurse directories]' \
  ':file flag:_values -s , "file flags" $flags[@]' \
  '*:file:_files "$own"'
debug log:

solving 8147df0 ...
found 8147df0 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).