244 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			244 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#compdef xbps-checkvers xbps-create xbps-dgraph xbps-install xbps-pkgdb xbps-query xbps-reconfigure xbps-remove xbps-rindex xbps-uchroot 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]'
 | 
						|
	{-n,--dry-run}'[Dry-run mode]'
 | 
						|
	{-r,--rootdir=-}'[Full path to rootdir]:root dir:_files -/'
 | 
						|
	{-v,--verbose}'[Verbose messages]'
 | 
						|
	{-V,--version}'[Show XBPS version]'
 | 
						|
)
 | 
						|
 | 
						|
_xbps_properties=(
 | 
						|
	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
 | 
						|
	packaged-with
 | 
						|
	pkgver
 | 
						|
	preserve
 | 
						|
	provides
 | 
						|
	remove-msg
 | 
						|
	remove-script
 | 
						|
	replaces
 | 
						|
	repository
 | 
						|
	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_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 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[Path to configuration file]:config file:_files' \
 | 
						|
		'-g[Generate a default config file]' \
 | 
						|
		'-o[Output file]:output file:_files' \
 | 
						|
		'-R[Also generate reverse dependencies in the graph]' \
 | 
						|
		'-r[Full path to rootdir]:root dir:_files -/' \
 | 
						|
		':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 -/' \
 | 
						|
		{-f,--force}'[Force package re-installation]' \
 | 
						|
		{-R,--repository=-}'[Add repository to the top of the list]:repository url:_files -/' \
 | 
						|
		{-S,--sync}'[Sync remote repository index]' \
 | 
						|
		{-u,--update}'[Update target packages]' \
 | 
						|
		{-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)' \
 | 
						|
		{-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 -/' \
 | 
						|
		{-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 -/' \
 | 
						|
		- '(actions)' \
 | 
						|
		{-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]' \
 | 
						|
		{-o,--ownedby}'[Search for package files]:package file:_files' \
 | 
						|
		{-S,--show}'[Show information]:package:_xbps_all_packages' \
 | 
						|
		{-s,--search}'[Search for packages]:search string: ' \
 | 
						|
		{-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]' \
 | 
						|
                '*: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]' \
 | 
						|
		{-f,--force}'[Force package files removal]' \
 | 
						|
		{-O,--clean-cache}'[Remove obsolete packages in cachedir]' \
 | 
						|
		{-o,--remove-orphans}'[Remove package orphans]' \
 | 
						|
		{-R,--recursive}'[Recursively remove dependencies]' \
 | 
						|
		{-y,--yes}'[Assume yes to all questions]' \
 | 
						|
		'*:installed packages:_xbps_installed_packages'
 | 
						|
}
 | 
						|
 | 
						|
_xbps_rindex() {
 | 
						|
	_arguments -s : \
 | 
						|
		{-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: ' \
 | 
						|
		{-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]' \
 | 
						|
		':repository dir:_files -/' \
 | 
						|
		'*:packages:_files'
 | 
						|
}
 | 
						|
 | 
						|
_xbps_uchroot() {
 | 
						|
	_arguments \
 | 
						|
		'-D[distdir]:distdir:_files -/' \
 | 
						|
		'-H[hostdir]:hostdir:_files -/' \
 | 
						|
		'-S[shmdir]:shmdir:_files -/' \
 | 
						|
		':command: _command_names -e' \
 | 
						|
		'*::arguments: _normal'
 | 
						|
}
 | 
						|
 | 
						|
_xbps_uhelper() {
 | 
						|
	local ret=1
 | 
						|
	_arguments \
 | 
						|
		{-C,--config=-}'[Full path to configuration file]:config file:_files' \
 | 
						|
		{-d,--debug}'[Debug mode shown to stderr]' \
 | 
						|
		{-r,--rootdir=-}'[Full path to rootdir]:root dir:_files -/' \
 | 
						|
		{-V,--version}'[Show XBPS version]' \
 | 
						|
		'1:action:->actions' \
 | 
						|
		'*:: :->args' && ret=0
 | 
						|
	case $state in
 | 
						|
		actions)
 | 
						|
			_values "actions" cmpver digest fetch getpkgdepname \
 | 
						|
				getpkgname getpkgrevision getpkgversion \
 | 
						|
				pkgmatch version real-version
 | 
						|
			ret=0;;
 | 
						|
		args)
 | 
						|
			case $words[1] in
 | 
						|
				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;;
 | 
						|
				pkgmatch) _arguments ':version: ' ':pattern: ' && ret=0;;
 | 
						|
				real-version) _arguments ':package:_xbps_installed_packages' && ret=0;;
 | 
						|
				version) _arguments ':package:_xbps_installed_packages' && ret=0;;
 | 
						|
			esac
 | 
						|
			;;
 | 
						|
	esac
 | 
						|
	return $ret
 | 
						|
}
 | 
						|
 | 
						|
_xbps() {
 | 
						|
	case "$service" in
 | 
						|
		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-uhelper) _xbps_uhelper "$@";;
 | 
						|
	esac
 | 
						|
}
 | 
						|
 | 
						|
_xbps "$@"
 |