#compdef rpmbuild
local -a cmds b_cmds t_cmds options b_options
cmds=(--rebuild --recompile)
b_cmds=(-ba -bb -bp -bc -bi -bl -bs)
t_cmds=(-ta -tb -tp -tc -ti -tl -ts)
options=(--quiet -v -vv --verbose --rcfile --pipe --dbpath -r --root --buildroot --clean --nobuild --nodeps --nodigest --nosignature --macros
--rmsource --rmspec --short-circuit --sign --target -D --define -E --eval --with --without --debug --bcond --install-build-tree)
b_options=(--clean --nobuild --nodeps --nodigest --nosignature --rmsource --rmspec --short-circuit --sign --target --debug --with --without)
_arguments \
"($cmds $b_cmds $t_cmds)"{-ba,-ta}'[build binary and source packages]' \
"($cmds $b_cmds $t_cmds)"{-bb,-tb}'[build a binary package]' \
"($cmds $b_cmds $t_cmds)"{-bp,-tp}'[execute the "%prep" stage]' \
"($cmds $b_cmds $t_cmds)"{-bc,-tc}'[do the "%build" stage]' \
"($cmds $b_cmds $t_cmds)"{-bi,-ti}'[do the "%install" stage]' \
"($cmds $b_cmds $t_cmds)"{-bl,-tl}'[do a "list check"]' \
"($cmds $b_cmds $t_cmds)"{-bs,-ts}'[build just the source package]' \
"($cmds $b_cmds $t_cmds * $b_options $options)"{-\?,--help}'[show help message]' \
"($cmds $b_cmds $t_cmds * $b_options $options)"--querytags'[display known query tags]' \
"($cmds $b_cmds $t_cmds * $b_options)"--showrc'[display final rpmrc and macro configuration]' \
"($cmds $b_cmds $t_cmds * $b_options $options)"--usage'[display brief usage message]' \
"($cmds $b_cmds $t_cmds * $b_options $options)"--version'[print the version of rpm being used]' \
"(-v --verbose -vv)"--quiet'[print as little as possible]' \
"(-v --verbose --quiet)"{-v,--verbose}'[print verbose information]' \
"(-v --verbose --quiet)"-vv'[print lots of ugly debugging information]' \
--rcfile'[RC files]:RC files:_files -S\:' \
--macros'[macros files]:macros files:_files -S\:' \
--pipe'[command to pipe the output of rpm to]:command' \
--dbpath'[set database directory]:database directory:_files -/' \
"(-r --root)"{-r,--root}'[root file system tree]:chroot directory:_files -/' \
--buildroot'[override the BuildRoot]:BuildRoot directory:_files -/' \
--clean'[remove the build tree after the packages are made]' \
--nobuild'[do not execute any build stages (for spec testing purposes]' \
--nodeps'[do not verify build dependencies]' \
--nodigest"[don't verify package digest(s)]" \
--nosignature"[don't verify package signature(s)]" \
--rmsource'[remove the sources after the build]' \
--rmspec'[remove the spec file after the build]' \
--short-circuit'[skip straight to specified stage (-bc, -bi or -bb in PLD Linux]' \
--sign'[embed a GPG signature]' \
--target='[set target platform]:arch-vendor-os:' \
{'*-D','*--define='}'[define MACRO with value EXPR]:MACRO EXPR' \
{'*-E','*--eval='}'[print macro expansion of EXPR]:EXPR' \
'*--with[enable configure option for build]:option' \
'*--without[disable configure option for build]:option' \
"($cmds $b_cmds $t_cmds * $b_options)"--bcond'[find all --with/--without values]' \
--debug'[build packages with debug information]' \
"($cmds $b_cmds $t_cmds * $b_options)"--install-build-tree'[make all needed dirs for building binary rpms]' \
"(--clean $b_cmds $t_cmds --rebuild)"--recompile'[recompile source package]' \
"(--clean $b_cmds $t_cmds --recompile)"--rebuild'[rebuild source package]' \
"*:file:_files -g '(#i)*.(spec|srpm|tgz|tar|tar.gz|tar.bz2)(-.)'" && ret=0
Copyright 2K16 - 2K18 Indonesian Hacker Rulez