zsh-workers
 help / color / mirror / code / Atom feed
3477e6116a4755b00f186221d8eb7c2a6ac1be07 blob 7821 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
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
 
#compdef dpkg dpkg-deb dpkg-query dpkg-reconfigure

local _dpkg_deb_actions _dpkg_common_actions _dpkg_actions _dpkg_options
local _dpkg_options_recursive #_dpkg_actions_install _dpkg_actions_record_avail
local _dpkg_deb_only_actions
local _dpkg_deb_and_query_only_actions _dpkg_deb_and_query_only_options 
local _dpkg_query_actions
local curcontext="$curcontext" context state line expl ret
typeset -A opt_args

_dpkg_deb_only_actions=(
    '-D[debugging output]'
    '(--new)--old[old archive format]'
    '(--old)--new[new archive format]'
    '--nocheck[suppress control file check]'
    '-z+[compression level]:compression number:(1 2 3 4 5 6 7 8 9)'
)

_dpkg_deb_actions=(
  '(--build -b)'{--build,-b}'[build archive]:directory:_files -/'
  '(--contents -c)'{--contents,-c}'[list contents]: :_deb_files'
  '(--info -I)'{--info,-I}'[show info]: :_deb_files'
  '(--field -f)'{--field,-f}'[show fields]: :_deb_files'
  '(--control -e)'{--control,-e}'[extract control]: :_deb_files'
  '(--extract -x)'{--extract,-x}'[extract files]: :_deb_files'
  '(--vextract -X)'{--vextract,-X}'[extract and list files]: :_deb_files'
  '--fsys-tarfile[output fs tarfile]: :_deb_files'
)

_dpkg_common_actions=(
  '--help[show help]'
  '--version[show version]'
  '(--license --licence)'{--license,--licence}'[show licensing]'
)

_dpkg_actions=(
  '(--install -i)'{--install,-i}'[install packages]:*:Debian packages:->install'
  '--unpack[unpack package]: :_deb_files'
  '--configure[reconfigure specified packages]:*:package:->configure'
  '(--remove -r)'{--remove,-r}'[remove package]:*:package:->remove'
  '(--purge -P)'{--purge,-P}'[purge package]:*:package:->purge'
  '--update-avail[update available]:package file:_files'
  '--merge-avail[merge available]:package file:_files'
  '(--record-avail -A)'{--record-avail,-A}'[record available]:*:package files:->record_avail'
  '--forget-old-unavail[forget uninstalled unavailable]'
  '--clear-avail[clear available]'
  '(--audit -C)'{--audit,-C}'[check for broken pkgs]'
  '--get-selections[get selections]:pattern:'
  '--set-selections[set selections]'
  '--yet-to-unpack[list uninstalled]'
  '--print-architecture[print target architecture]'
  '--print-installation-architecture'
  '--print-foreign-architectures[print list of extra architectures]'
  '--add-architecture[add extra architecture]:architecture:->add_architecture'
  '--remove-architecture[remove extra architecture]:architecture:->remove_architecture'
  '--compare-versions[compare version numbers]:*::expression:= ->compare_versions'
)

_dpkg_options=(
  '--abort-after[abort after errors]:number of errors:'
  '--root=[alternative root]:root:_files -/'
  '--instdir=[change inst root but not data dir]:_files -/'
  '(--selected-only -O)'{--selected-only,-O}'[skip unselected packages]'
  '(--skip-same-version -E)'{--skip-same-version,-E}'[skip packages with same version as installed]'
  '(--refuse-downgrade -G)'{--refuse-downgrade,-G}'[skip packages with earlier version than installed]'
  '(--auto-deconfigure -B)'{--auto-deconfigure,-B}'[install can break other packages]'
  '--largemem[optimize for >4Mb RAM]'
  '--smallmem[optimize for <4Mb RAM]'
  '--no-act[show potential actions but do not follow through]'
  '-D+[debug options]:debug options:(h 1 2 3)'
  '--debug=[debug options]:debug options:(help 1 2 3)'
  '--ignore-depends=[ignore depends involving package]:package:_deb_packages avail'
  --{force,refuse,no-force}'--[forcing options]:what:(all downgrade configure-any hold bad-path not-root overwrite overwrite-diverted bad-verify depends-version depends confnew confold confdef confmiss conflicts architecture overwrite-dir remove-reinstreq remove-essential help)'
)

_dpkg_options_recursive=( '(--recursive -R)'{--recursive,-R}'[recursive]' )

_dpkg_deb_and_query_only_actions=(
    '(--show -W)'{--show,-W}'[show package info]: :_deb_files'
)

_dpkg_deb_and_query_only_options=(
    '--showformat=-[alternative format]:format: '
)

_dpkg_query_actions=(
      '(--status -s)'{--status,-s}'[display package status]:*:packages:->status'
      '(--print-avail -p)'{--print-avail,-p}'[display available details]:packages:_deb_packages avail'
      '(--listfiles, -L)'{--listfiles,-L}'[list owned files]:*:packages:->listfiles'
      '(--list -l)'{--list,-l}'[list packages]:*:packages:->list'
      '(--search -S)'{--search,-S}'[search for file owner]:*:pattern:->search'
      '--admindir=[data directory]:directory:_files -/'
)

# not needed anymore?
#  _dpkg_actions_install=('(--install)-i[install]' '(-i)--install')
#  _dpkg_actions_record_avail=('(--record-avail)-A[record available]' '(-A)--record-avail')

case "$service" in
  dpkg)
    _arguments -C -s \
      "$_dpkg_actions[@]" \
      "$_dpkg_deb_actions[@]" \
      "$_dpkg_common_actions[@]" \
      "$_dpkg_options[@]" \
      "$_dpkg_options_recursive[@]" \
      "$_dpkg_query_actions[@]" && return 0
  ;;

  dpkg-deb)
    _arguments "$_dpkg_deb_actions[@]" \
        "$_dpkg_deb_only_actions[@]" \
        "$_dpkg_common_actions[@]" \
        "$_dpkg_deb_and_query_only_actions[@]" \
        "$_dpkg_deb_and_query_only_options[@]" && return 0

  ;;

  dpkg-query)
    _arguments "$_dpkg_query_actions[@]" \
           "$_dpkg_common_actions[@]" \
           "$_dpkg_deb_and_query_only_actions[@]" \
           "$_dpkg_deb_and_query_only_options[@]" && return 0
  ;;
  dpkg-reconfigure)
    _arguments -s -w \
      '(-f --frontend)'{-f,--frontend}'[select frontend to use]:frontend:(dialog readline noninteractive gnome kde editor web)' \
      '(-p --priority)'{-p,--priority}'[specify min priority of questions]:priority:(low medium high critical)' \
      '--default-priority[use default question priority]' \
      '(*)--all[reconfigure all installed packages using debconf]' \
      '(-u --unseen-only)'{-u,--unseen-only}'[only ask questions not yet seen are asked]' \
      '--force[reconfigure even packages in broken state]' \
      '(-)'{-h,--help}'[display help information]' \
      '*:package:_deb_packages installed' && return 0
  ;;
esac

case "$state" in
  install|record_avail)
    _call_function ret _dpkg_$state && return ret
# not needed anymore?
#            "${(@e):-\$_dpkg_actions_${state}}" \
    _arguments -C -A '-*' -s \
	"$_dpkg_options[@]" \
	\!${^_dpkg_actions%%:*} \
      - recur \
	"$_dpkg_options_recursive[@]" \
	'*:directory:_path_files -/' \
      - nonrecur \
	'*: :_deb_files'
  ;;
  remove|status|listfiles)
    _call_function ret _dpkg_$state && return ret
    _arguments -C -A "-*" -s "$_dpkg_options[@]" \
       '*:package:_deb_packages installed'
  ;;
  purge)
    _call_function ret _dpkg_$state && return ret
    _arguments -C -A "-*" -s "$_dpkg_options[@]" \
       '*:package:_deb_packages xinstalled'
  ;;
  list)
    _call_function ret _dpkg_$state && return ret
    _arguments -C -A "-*" -s "$_dpkg_options[@]" \
       '*:packages:_deb_packages avail'
  ;;
  compare_versions)
    _call_function ret _dpkg_$state && return ret
    _arguments -C -A "-*" -s \
    '1:version A:' \
    '2:operator:(lt le eq ne ge gt lt-nl le-nl ge-nl gt-nl)' \
    '3:version B:'
  ;;
  configure)
    _call_function ret _dpkg_$state && return ret
    _arguments -C -A "-*" -s '--configure' \
       "$_dpkg_options[@]" \
      '(* -a --pending)'{-a,--pending}'[pending packages]' \
      '*:package:_deb_packages installed'
  ;;
  search)
    _call_function ret _dpkg_$state && return ret
    _files
  ;;
  add_architecture)
    _call_function ret _dpkg_$state && return ret
    _wanted architecture expl 'extra architecture' \
      compadd ${(f)"$(dpkg-architecture -L 2>/dev/null)"}
  ;;
  remove_architecture)
    _call_function ret _dpkg_$state && return ret
    _wanted architecture expl 'extra architecture' \
      compadd ${(f)"$(dpkg --print-foreign-architectures 2>/dev/null)"}
esac
debug log:

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