xbps/data/_xbps
classabbyamp 50fb2017d0 xbps-uhelper: add verbose output for cmpver/pkgmatch
I can never remember which retval means which thing. This only prints if
-v/--verbose is specified.

Examples:
```
$ ./bin/xbps-uhelper/xbps-uhelper -v cmpver 1 2 ; echo ret: $?
1 < 2
ret: 255
$ ./bin/xbps-uhelper/xbps-uhelper -v cmpver 1 1 ; echo ret: $?
1 = 1
ret: 0
$ ./bin/xbps-uhelper/xbps-uhelper -v cmpver 2 1 ; echo ret: $?
2 > 1
ret: 1
$ ./bin/xbps-uhelper/xbps-uhelper -v pkgmatch 'foo-1.0_1' 'foo>=0' ; echo ret: $?
foo-1.0_1 matches foo>=0
ret: 1
$ ./bin/xbps-uhelper/xbps-uhelper -v pkgmatch 'foo-1.0_1' 'foo<0.1_1' ; echo ret: $?
foo-1.0_1 does not match foo<0.1_1
ret: 0
```

it also seems that getting an error from pkgmatch is currently impossible
2023-06-01 20:21:57 +02:00

284 lines
9.8 KiB
Plaintext

#compdef xbps-alternatives xbps-checkvers xbps-create xbps-dgraph xbps-install xbps-pkgdb xbps-query xbps-reconfigure xbps-remove xbps-rindex xbps-uchroot xbps-uunshare xbps-uhelper
_xbps_common=(
{-C,--config=-}'[Full path to configuration file]:config file:_files'
{-d,--debug}'[Debug mode shown to stderr]'
{-h,--help}'[Print help usage]'
{-r,--rootdir=-}'[Full path to rootdir]:root dir:_files -/'
{-v,--verbose}'[Verbose messages]'
{-V,--version}'[Show XBPS version]'
)
_xbps_properties=(
alternatives
architecture
archive-compression-type
automatic-install
build-date
build-options
conf_files
conflicts
filename-sha256
filename-size
homepage
install-date
install-msg
install-script
installed_size
license
maintainer
metafile-sha256
pkgver
preserve
provides
remove-msg
remove-script
replaces
repolock
repository
reverts
run_depends
shlib-provides
shlib-requires
short_desc
source-revisions
state
)
_xbps_all_packages() {
compadd "$@" -- ${${${(f)"$(xbps-query -Rs '')"}#??? }%%-[^- ]# *}
}
_xbps_installed_packages() {
compadd "$@" -- ${${${(f)"$(xbps-query -l)"}#?? }%%-[^- ]# *}
}
_xbps_alternatives_groups() {
compadd "$@" -- ${${${(f)"$(xbps-alternatives -l)"}##? }%%-# *}
}
_xbps_alternatives() {
_arguments -s : \
$_xbps_common \
{-g,--group}'[Group of alternatives to match]:group:_xbps_alternatives_groups' \
{-l,--list}'[List all alternatives]' \
{-s,--set}'[Set alternatives]' \
'*:installed packages:_xbps_installed_packages'
}
_xbps_checkvers() {
_arguments -s : \
$_xbps_common \
{-D,--distdir}'[Set the path to void-packages]:path:_files -/' \
{-i,--installed}'[Check for outdated packages in rootdir]' \
{-s,--show-missing}'[List any binary packages which are not built]' \
'*:extra packages:_files'
}
_xbps_create() {
_arguments -s : \
{-A,--architecture}'[Package architecture]:architecture:(i686 i686-musl x86_64 x86_64-musl armv7l armv7l-musl armv6l armv6l-musl aarch64 aarch64-musl ppc64le ppc64le-musl ppc64 ppc64-musl ppc ppc-musl noarch)' \
{-B,--built-with}'[Package builder string]:package builder: ' \
{-C,--conflicts}'[Conflicts]:conflicts: ' \
{-D,--dependencies}'[Dependencies]:dependencies: ' \
{-F,--config-files}'[Configuration files]:configuration files: ' \
{-H,--homepage}'[Homepage]:homepage: ' \
{-h,--help}'[Show help]' \
{-l,--license}'[License]:license: ' \
{-M,--mutable-files}'[Mutable files list]:mutable files: ' \
{-m,--maintainer}'[Maintainer]:maintainer: ' \
{-n,--pkgver}'[Package name/version tuple]:package name/version: ' \
{-P,--provides}'[Provides]:provides: ' \
{-p,--preserve}'[Enable package preserve boolean]' \
{-q,--quiet}'[Work silently]' \
{-R,--replaces}'[Replaces]:replaces: ' \
{-S,--long-desc}'[Long description]:long description: ' \
{-s,--desc}'[Short description]:short description: ' \
{-t,--tags}'[A list of tags/categories]:tags: ' \
{-V,--version}'[Prints XBPS release version]' \
--build-options'[A string with the used build options]:used build options: ' \
--compression'[Compression format]:compression format:(gzip bzip2 xz)' \
--shlib-provides'[List of provided shared libraries]:provided shared libraries: ' \
--shlib-requires'[List of required shared libraries]:required shared libraries: '
}
_xbps_dgraph() {
_arguments : \
{-C,--config=-}'[Full path to configuration file]:config file:_files' \
{-c,--graph-config}'[Path to configuration file]:config file:_files' \
{-d,--debug}'[Debug mode shown to stderr]' \
{-h,--help}'[Print help usage]' \
{-M,--memory-sync}'[Keep remote repository data in memory only]' \
{-r,--rootdir}'[Full path to rootdir]:root dir:_files -/' \
{-R,--repository}'[Enable repository mode]' \
- '(mode)' \
{-g,--gen-config}'[Generate a default config file]' \
{-f,--fulldeptree}'[Generate a dependency graph]' \
{-m,--metadata}'[Generate a metadata graph]' \
':package:_xbps_all_packages'
}
_xbps_install() {
_arguments -s : \
$_xbps_common \
{-A,--automatic}'[Set automatic installation mode]' \
{-c,--cachedir=-}'[Full path to cachedir]:cache dir:_files -/' \
{-n,--dry-run}'[Dry-run mode]' \
{-f,--force}'[Force package re-installation]' \
{-i,--ignore-conf-repos}'[Ignore repositories defined in xbps.d]' \
{-M,--memory-sync}'[Keep remote repository data in memory only]' \
'*'{-R,--repository=-}'[Add repository to the top of the list]:repository url:_files -/' \
{-S,--sync}'[Sync remote repository index]' \
{-u,--update}'[Update target packages]' \
{-U,--unpack-only}'[Unpack packages without configuring]' \
{-y,--yes}'[Assume yes to all questions]' \
'*:available packages:_xbps_all_packages'
}
_xbps_pkgdb() {
_arguments -s : \
$_xbps_common \
{-a,--all}'[Process all packages]' \
{-m,--mode}'[Change to this mode]:mode:(auto manual hold unhold repolock repounlock)' \
{-u,--update}'[Update pkgdb to the latest format]' \
'*:installed packages:_xbps_installed_packages'
}
_xbps_query() {
_arguments -s : \
$_xbps_common \
{-c,--cachedir=-}'[Full path to cachedir]:cache dir:_files -/' \
{-i,--ignore-conf-repos}'[Ignore repositories defined in xbps.d]' \
{-M,--memory-sync}'[Keep remote repository data in memory only]' \
{-p,--property=-}'[Show properties]:property:($_xbps_properties)' \
--regex'[Use Extended Regular Expressions to match]' \
--fulldeptree'[Full dependency tree for -x/--deps]' \
{-R,--repository}'[Enable repository mode]' \
'*'--repository=-'[Add repository to the top of the list]:repository url:_files -/' \
- '(mode)' \
{-l,--list-pkgs}'[List installed packages]' \
{-L,--list-repos}'[List registered repositories]' \
{-H,--list-hold-pkgs}'[List packages on hold state]' \
{-m,--list-manual-pkgs}'[List packages installed explicitly]' \
{-O,--list-orphans}'[List package orphans]' \
--list-repolock-pkgs'[List packages in repolock mode]' \
{-o,--ownedby}'[Search for package files]:package file:_files' \
{-S,--show}'[Show information]:package:_xbps_all_packages' \
{-s,--search}'[Search for packages]:search string: ' \
--cat=-'[Print file from binpkg to stdout]:file name:_files:package:_xbps_all_packages' \
{-f,--files}'[Show package files]:package:_xbps_all_packages' \
{-x,--deps}'[Show dependencies]:package:_xbps_all_packages' \
{-X,--revdeps}'[Show reverse dependencies]:package:_xbps_all_packages' \
- '(default)' \
':package:_xbps_all_packages'
}
_xbps_reconfigure() {
_arguments -s : \
$_xbps_common \
{-a,--all}'[Process all packages]' \
{-f,--force}'[Force reconfiguration]' \
'*'{-i,--ignore}'[Ignore package for reconfigure]:installed packages:_xbps_installed_packages' \
'*:installed packages:_xbps_installed_packages'
}
_xbps_remove() {
_arguments -s : \
$_xbps_common \
{-c,--cachedir=-}'[Full path to cachedir]:cache dir:_files -/' \
{-F,--force-revdeps}'[Force package removal even with revdeps/unresolved shared libraries]' \
{-f,--force}'[Force package files removal]' \
{-O,--clean-cache}'[Remove obsolete packages in cachedir]' \
{-o,--remove-orphans}'[Remove package orphans]' \
{-n,--dry-run}'[Dry-run mode]' \
{-R,--recursive}'[Recursively remove dependencies]' \
{-y,--yes}'[Assume yes to all questions]' \
'*:installed packages:_xbps_installed_packages'
}
_xbps_rindex() {
_arguments -s : \
{-d,--debug}'[Debug mode shown to stderr]' \
{-f,--force}'[Force mode to overwrite entry in add mode]' \
{-h,--help}'[Print help usage]' \
{-v,--verbose}'[Verbose messages]' \
{-V,--version}'[Show XBPS version]' \
'--privkey[Path to the private key for signing]:private key path:_files' \
'--signedby[Signature details]:signature details: ' \
- '(mode)' \
{-a,--add}'[Add package to repository index]' \
{-c,--clean}'[Clean repository index]' \
{-r,--remove-obsoletes}'[Removes obsolete packages from repository]' \
{-s,--sign}'[Sign repository index]' \
{-S,--sign-pkg}'[Sign binary package archive]' \
':repository dir:_files -/' \
'*:packages:_files'
}
_xbps_uchroot() {
_arguments \
'-D[distdir]:distdir:_files -/' \
'-H[hostdir]:hostdir:_files -/' \
'-S[shmdir]:shmdir:_files -/' \
':chroot dir:_files -/' \
':command: _command_names -e' \
'*::arguments: _normal'
}
_xbps_uhelper() {
local ret=1
_arguments \
$_xbps_common \
'1:action:->actions' \
'*:: :->args' && ret=0
case $state in
actions)
_values "actions" binpkgarch binpkgver cmpver digest fetch getpkgdepname \
getpkgname getpkgrevision getpkgversion \
pkgmatch version real-version arch getsystemdir getname getversion
ret=0;;
args)
case $words[1] in
binpkgarch) _arguments ':binpkg:' && ret=0;;
binpkgver) _arguments ':binpkg:' && ret=0;;
cmpver) _arguments ':installed version: ' ':required version: ' && ret=0;;
digest) _arguments '*:files:_files' && ret=0;;
fetch) _arguments '*:urls: ' && ret=0;;
getpkgdepname) _arguments '*:string: ' && ret=0;;
getpkgname) _arguments '*:string: ' && ret=0;;
getpkgrevision) _arguments '*:string: ' && ret=0;;
getpkgversion) _arguments '*:string: ' && ret=0;;
getname) _arguments '*:string: ' && ret=0;;
getversion) _arguments '*:string: ' && ret=0;;
pkgmatch) _arguments ':version: ' ':pattern: ' && ret=0;;
real-version) _arguments ':package:_xbps_installed_packages' && ret=0;;
version) _arguments ':package:_xbps_installed_packages' && ret=0;;
arch) ret=0;;
getsystemdir) ret=0;;
esac
;;
esac
return $ret
}
_xbps() {
case "$service" in
xbps-alternatives) _xbps_alternatives "$@";;
xbps-checkvers) _xbps_checkvers "$@";;
xbps-create) _xbps_create "$@";;
xbps-dgraph) _xbps_dgraph "$@";;
xbps-install) _xbps_install "$@";;
xbps-pkgdb) _xbps_pkgdb "$@";;
xbps-query) _xbps_query "$@";;
xbps-reconfigure) _xbps_reconfigure "$@";;
xbps-remove) _xbps_remove "$@";;
xbps-rindex) _xbps_rindex "$@";;
xbps-uchroot) _xbps_uchroot "$@";;
xbps-uunshare) _xbps_uchroot "$@";;
xbps-uhelper) _xbps_uhelper "$@";;
esac
}
_xbps "$@"