mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-20 05:53:52 +01:00
146 lines
6.6 KiB
Plaintext
146 lines
6.6 KiB
Plaintext
#compdef dpkg dpkg-deb
|
|
|
|
local _dpkg_deb_actions _dpkg_common_actions _dpkg_actions _dpkg_options
|
|
local _dpkg_options_recursive _dpkg_actions_install _dpkg_actions_record_avail
|
|
local curcontext="$curcontext" context state line expl ret
|
|
typeset -A opt_args
|
|
|
|
_dpkg_deb_actions=('(--build)-b[build archive]:directory:_files -/' \
|
|
'(-b)--build:directory:_files -/' \
|
|
'(--contents)-c[list contents]:Debian package:_files -g \*.deb' \
|
|
'(-c)--contents:Debian package:_files -g \*.deb' \
|
|
'(--info)-I[show info]:Debian package:_files -g \*.deb' \
|
|
'(-I)--info:Debian package:_files -g \*.deb' \
|
|
'(--field)-f[show fields]:Debian package:_files -g \*.deb' \
|
|
'(-f)--field:Debian package:_files -g \*.deb' \
|
|
'(--control)-e[extract control]:Debian package:_files -g \*.deb' \
|
|
'(-e)--control:Debian package:_files -g \*.deb' \
|
|
'(--extract)-x[extract files]:Debian package:_files -g \*.deb' \
|
|
'(-x)--extract:Debian package:_files -g \*.deb' \
|
|
'(--vextract)-X[extract and list files]:Debian package:_files -g \*.deb' \
|
|
'(-X)--vextract[extract and list]:Debian package:_files -g \*.deb' \
|
|
'--fsys-tarfile[output fs tarfile]:Debian package:_files -g \*.deb')
|
|
|
|
_dpkg_common_actions=('--help[show help]' \
|
|
'--version[show version]' \
|
|
'(--license)--licence[show licencing]' \
|
|
'(--licence)--license[show licensing]')
|
|
|
|
_dpkg_actions=('(--install)-i[install packages]:*:Debian packages:->install' \
|
|
'(-i)--install:*:Debian packages:->install' \
|
|
'--unpack[unpack package]:Debian package:_files -g \*.deb' \
|
|
'--configure:*:package:->configure' \
|
|
'(--remove)-r[remove package]:*:package:->remove' \
|
|
'(-r)--remove:*:package:->remove' \
|
|
'(--purge)-P[purge package]:*:package:->purge' \
|
|
'(-P)--purge:*:package:->purge' \
|
|
'(--print-avail)-p[display available details]:packages:_deb_packages avail' \
|
|
'(-p)--print-avail:packages:_deb_packages avail' \
|
|
'--update-avail[update available]:package file:_files' \
|
|
'--merge-avail[merge available]:package file:_files' \
|
|
'(--record-avail)-A[record available]:*:package files:->record_avail' \
|
|
'(-A)--record-avail:*:package files:->record_avail' \
|
|
'--forget-old-unavail[forget uninstalled unavailable]' \
|
|
'--clear-avail[clear available]' \
|
|
'(--list)-l[list packages]:*:packages:->list' \
|
|
'(-l)--list:*:packages:->list' \
|
|
'(--status)-s[display package status]:*:packages:->status' \
|
|
'(-s)--status:*:packages:->status' \
|
|
'(--audit)-C[check for broken pkgs]' \
|
|
'(-C)--audit' \
|
|
'--get-selections[get selections]:pattern:' \
|
|
'--set-selections[set selections]' \
|
|
'--yet-to-unpack[list uninstalled]' \
|
|
'(--listfiles)-L[list owned files]:*:packages:->listfiles' \
|
|
'(-L)--listfiles:*:packages:->listfiles' \
|
|
'(--search)-S[search for file owner]:*:pattern:->search' \
|
|
'(-S)--search:*:pattern:->search' \
|
|
'--print-architecture[print target architecture]' \
|
|
'--print-gnu-build-architecture[print GNU version of target architecture]' \
|
|
'--print-installation-architecture[print host architecture]' \
|
|
'--compare-versions[compare version numbers]:*:expression:->compare_versions')
|
|
|
|
_dpkg_options=('--abort-after[abort after errors]:number of errors:' \
|
|
'--admindir=[data directory]:directory:_files -/' \
|
|
'--root=[alternative root]:root:_files -/' \
|
|
'--instdir=[change inst root but not data dir]:_files -/' \
|
|
'(--selected-only)-O[skip unselected packages]' \
|
|
'(-O)--selected-only' \
|
|
'(--skip-same-version)-E[skip packages with same version as installed]' \
|
|
'(-E)--skip-same-version' \
|
|
'(--refuse-downgrade)-G[skip packages with earlier version than installed]' \
|
|
'(-G)--refuse-downgrade' \
|
|
'(--auto-deconfigure)-B[install can break other packages]' \
|
|
'(-B)--auto-deconfigure' \
|
|
'--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:(auto-select downgrade configure-any hold bad-path not-root overwrite overwrite-diverted depends-version depends confnew confold confdef confmiss conflicts architecture overwrite-dir remove-reinstreq remove-essential)')
|
|
|
|
_dpkg_options_recursive=('(--recursive)-R[recursive]' '(-R)--recursive')
|
|
|
|
# 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[@]" && return 0
|
|
;;
|
|
|
|
dpkg-deb)
|
|
_arguments "$_dpkg_deb_actions[@]" \
|
|
"$_dpkg_common_actions[@]" && return 0
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
case "$state" in
|
|
install|record_avail)
|
|
_funcall 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 \
|
|
'*:Debian package:_path_files -g \*.deb'
|
|
;;
|
|
remove|purge|status|listfiles)
|
|
_funcall ret _dpkg_$state && return ret
|
|
_arguments -C -A "-*" -s "$_dpkg_options[@]" \
|
|
'*:package:_deb_packages installed'
|
|
;;
|
|
list)
|
|
_funcall ret _dpkg_$state && return ret
|
|
_arguments -C -A "-*" -s "$_dpkg_options[@]" \
|
|
'*:packages:_deb_packages avail'
|
|
;;
|
|
compare_versions)
|
|
_funcall ret _dpkg_$state && return ret
|
|
_arguments -C -A "-*" -s "$_dpkg_options[@]" \
|
|
'2:version A:' \
|
|
'3:operator:(lt le eq ne ge gt lt-nl le-nl ge-nl gt-nl)' \
|
|
'4:version B:'
|
|
;;
|
|
configure)
|
|
_funcall ret _dpkg_$state && return ret
|
|
_arguments -C -A "-*" -s '--configure' \
|
|
"$_dpkg_options[@]" \
|
|
'(--pending)-a[pending packages]' \
|
|
'(-a)--pending' \
|
|
'*:package:_deb_packages installed'
|
|
;;
|
|
esac
|