zsh-workers
 help / color / mirror / code / Atom feed
d8bc4ef0eecd318adae06bc72c03febbd62f2ea1 blob 2356 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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
 
#compdef sysrc
_sysrc_caching_policy() {
  local -a oldp
  oldp=( "$1"(Nm+1) )
  (( $#oldp ))
}


_sysrc() {
  _arguments -A '-*' : \
    '-c[check only, return success if vars are set]' \
    '-d[print variable(s) description]' \
    '-D[print default value(s) only]' \
    '-e[print variables as sh(1) compatible syntax]' \
    '*-f[operate on specified file(s), not \`rc_conf_files'\'']: : _files' \
    '-F[print only the last rc.conf(5) file each directive is in]' \
    '-h[print short usage message]' \
    '--help[print full usage message]' \
    '-i[ignore unknown variables]' \
    '-j[jail to operate within]:jails:_jails' \
    '-n[print only variable values]' \
    '-N[print only variable names]' \
    '-q[quiet mode]' \
    '-R[specify an alternative root]:alternative root:_files -/' \
    '-v[verbose mode]' \
    '--version[print version information]' \
    '-x[remove specified variables from specified file(s)]' \
    '*:configuration variable:->confvars' \
    - set1 \
    '-a[list all non-default configuration variables]' \
    - set2 \
    '-A[list all configuration variables]'

  if [[ $state  == confvars ]]; then
    local k v opt curcontext="${curcontext%:*}:values"; local -a rc_conf_vars
    if [[ -prefix *=* ]]; then
      # do you really want to go down this hole?
      _message -e values value
    else
      if zstyle -T ":completion:${curcontext%:*}:values" verbose; then
        opt=d
      else
        opt=N
      fi
      
      if ! zstyle -m ":completion:${curcontext%:*}:values" cache-policy '*'; then
        zstyle ":completion:${curcontext%:*}:values" cache-policy _sysrc_caching_policy
      fi

      if _cache_invalid sysrc/rc_conf_vars ||
         ! _retrieve_cache sysrc/rc_conf_vars; then
 
        _call_program sysrc-cmd sysrc -A$opt | while read -r k v; do
          [[ $k = DEBUG* ]] && continue
          if [[ -z $v ]]; then
            rc_conf_vars+=( ${k%:} )
          else
            rc_conf_vars+=( "${k%:}[${${v//]/\\]}//:/\\:}]" )
          fi
          v=
        done

        _store_cache sysrc/rc_conf_vars rc_conf_vars
      fi

      if (( $#rc_conf_vars )); then
        if [[ $opt == N ]]; then
          _values -w -C variable ${^rc_conf_vars%%\[*}'::value'
        else
          _values -w -C variable ${^rc_conf_vars}'::value'
        fi
      fi
    fi
  fi
}

_sysrc "$@"
debug log:

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