From: Tomasz Pala <gotar@polanet.pl>
To: zsh-users@sunsite.dk
Subject: rpmbuild and mdadm completion
Date: Sat, 11 Apr 2009 23:28:22 +0200 [thread overview]
Message-ID: <20090411212822.GA28891@polanet.pl> (raw)
In-Reply-To: <20090411175018.GA20676@polanet.pl>
[-- Attachment #1: Type: text/plain, Size: 932 bytes --]
Hello again,
this time two new completions:
1. rpmbuild has been detached from main rpm binary, according to man:
LEGACY ISSUES
Executing rpmbuild
The build modes of rpm are now resident in the /usr/bin/rpmbuild executable.
Although legacy compatibility provided by the popt aliases below has been ade-
quate, the compatibility is not perfect; hence build mode compatibility through
popt aliases is being removed from rpm. Install the rpmbuild package, and see
rpmbuild(8) for documentation of all the rpm build modes previously documented
here in rpm(8).
so the need of separate completion code arises (in fact I missed it for
many years now).
2. mdadm is not complete, but I hasn't developed it further since 1,5 month,
just got no time for this - maybe someone finishes it sometime, for now
it's better than nothing.
--
Tomasz Pala <gotar@pld-linux.org>
[-- Attachment #2: _rpmbuild --]
[-- Type: text/plain, Size: 3388 bytes --]
#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
[-- Attachment #3: _mdadm --]
[-- Type: text/plain, Size: 8004 bytes --]
#compdef mdadm
typeset -A opt_args
local -a args misc modes
_raids_build () {
_values -S \ "MD device type" \
'linear[linear]' \
{0,raid0,stripe}'[striping]' \
{1,raid1,mirror}'[mirroring]' \
{multipath,mp}'[multiple paths to one common physical storage device]' \
'faulty[injects faults]'
}
_raids () {
_values -S \ "MD device type" \
'linear[linear]' \
{0,raid0,stripe}'[striping]' \
{1,raid1,mirror}'[mirroring]' \
{4,raid4}'[RAID 4]' \
{5,raid5}'[RAID 5]' \
{6,raid6}'[RAID 6]' \
{10,raid10}'[RAID 1+0]' \
{multipath,mp}'[multiple paths to one common physical storage device]' \
'faulty[injects faults]'
}
_layouts () {
case ${(v)opt_args[(I)-(l|-level)]} in
5|raid5)
_values -S \ "RAID5 parity block layout" \
{left-asymmetric,la}'[left-asymmetric]' \
{left-symmetric,ls}'[left-symmetric]' \
{right-asymmetric,ra}'[right-asymmetric]' \
{right-symmetric,rs}'[right-symmetric]'
;;
10|raid10)
_values -s ' ' 'RAID10 layout with number of copies of each datablock' \
'n1[Near copies]' \
'n2[Near copies]' \
'n3[Near copies]' \
'n4[Near copies]' \
'n5[Near copies]' \
'n6[Near copies]' \
'n7[Near copies]' \
'n8[Near copies]' \
'n8[Near copies]' \
'f1[Far copies]' \
'f2[Far copies]' \
'f3[Far copies]' \
'f4[Far copies]' \
'f5[Far copies]' \
'f6[Far copies]' \
'f7[Far copies]' \
'f8[Far copies]' \
'f9[Far copies]'
;;
faulty)
_values -S \ "Failure mode" \
{write-transient,wt}'[write-transient]' \
{read-transient,rt}'[read-transient]' \
{write-presistent,wp}'[write-presistent]' \
{read-presistent,rp}'[read-presistent]' \
write-all'[write-all]' \
{read-fixable,rf}'[read-fixable]' \
{clear,none}'[remove any pending or periodic failure modes]' \
flush'[clear any persistant faults]'
esac
}
if (( $+words[(r)-(A|-assemble)] )); then
args=(
'(--bitmap)'--bitmap='[bitmap file to use with the array]::Bitmap file:_files'
'(--uuid -u)'{--uuid=,-u}'[UUID of array to assemble]:UUID'
'(--super-minor -m)'{--super-minor=,-m}'[minor number to look for in super-block]:Minor number'
'(--name -N)'{--name=,-N}'[Array name to look for in super-block]:Array name'
'(--config -c)'{--config=,-c}'[config file]::Config file:_files'
'(--scan -s)'{--scan,-s}'[scan config file for missing information]'
'(--run -R)'{--run,-R}'[Try to start the array even if not enough devices for a full array are present]'
'(--force -f)'{--force,-f}'[Assemble the array even if some superblocks appear out-of-date]'
'(--update,-U)'{--update=,-U}'[Update superblock]::Update the superblock:(sparc2.2 summaries uuid resync byteorder super-minor)'
)
fi
if (( $+words[(r)-(B|-build)] )); then
args=(
'(--bitmap)'--bitmap='[file to store/find bitmap information in]::Bitmap file:_files'
'(--chunk -c)'{--chunk=,-c}'[chunk size of kibibytes]:Chunk size'
'(--rounding)'--rounding='[rounding factor for linear array (==chunk size)]:Rounding factor'
'(--level -l)'{--level=,-l}'[RAID level]::RAID level:_raids_build'
'(--raid-devices -n)'{--raid-devices=,-n}'[number of active devices in array]:active devices number'
'(--bitmap-chunk)'--bitmap-chunk='[bitmap chunksize in Kilobytes]:Bitmap chunk'
'(--delay -d)'{--delay=,-d}'[bitmap update delay in seconds]:Bitmap update delay'
)
fi
if (( $+words[(r)-(C|-create)] )); then
args=(
'(--bitmap)'--bitmap='[create a bitmap for the array with the given filename]::Bitmap file:_files'
'(--chunk -c)'{--chunk=,-c}'[chunk size of kibibytes]:Chunk size'
'(--rounding)'--rounding='[rounding factor for linear array (==chunk size)]:Rounding factor'
'(--level -l)'{--level=,-l}'[RAID level]::RAID level:_raids'
'(--parity -p --layout)'{--parity=,-p,--layout=}'[RAID5/6/10 parity algorithm, faulty mode]::Layout:_layouts'
'(--raid-devices -n)'{--raid-devices=,-n}'[number of active devices in array]:active devices number'
'(--spare-devices -x)'{--spare-devices=,-x}'[number of spares (eXtras) devices in initial array]:Spare devices number'
'(--size -z)'{--size=,-z}'[size (in K) of each drive in RAID1/4/5/6/10]:Size of each drive'
'(--force -f)'{--force,-f}'[honour devices as listed on command line]'
'(--run -R)'{--run,-R}'[insist of running the array even if not all devices are present or some look odd]'
'(--readonly -o)'{--readonly,-o}'[start the array readonly]'
'(--name -N)'{--name=,-N}'[textual name for array - max 32 characters]:Array name'
'(--bitmap-chunk)'--bitmap-chunk='[bitmap chunksize in Kilobytes]:Bitmap chunk'
'(--delay -d)'{--delay,-d}'[bitmap update delay in seconds]:Bitmap update delay'
)
fi
if (( $+words[(r)-([DEXQ]|-(detail|examine(|-bitmap)|query))] )); then
args=(
'(--zero-superblock)'--zero-superblock'[erase the MD superblock from a device]'
'(--run -R)'{--run,-R}'[start a partially built array]'
'(--stop -S)'{--stop,-S}'[deactivate array, releasing all resources]'
'(--readonly -o)'{--readonly,-o}'[mark array as readonly]'
'(--readwrite -w)'{--readwrite,-w}'[mark array as readwrite]'
'(--test -t)'{--test,-t}'[exit status 0 if ok, 1 if degrade, 2 if dead, 4 if missing]'
)
fi
if (( $+words[(r)-(F|-follow|-monitor)] )); then
args=(
'(--mail -m)'{--mail=,-m}'[Address to mail alerts of failure to]:::_email_addresses'
'(--program -p --alert)'{--program=,-p,--alert=}'[Program to run when an event is detected]::Program:_files'
'(--delay -d)'{--delay=,-d}'[seconds of delay between polling state]:seconds'
'(--config -c)'{--config=,-c}'[specify a different config file]::Config file:_files'
'(--scan -s)'{--scan,-s}'[find mail-address/program in config file]'
'(--daemonise -f)'{--daemonise,-f}'[Fork and continue in child, parent exits]'
'(--pid-file -i)'{--pid-file=,-i}'[In daemon mode write pid to specified file instead of stdout]::PID file:_files'
'(--oneshot -1)'{--oneshot,-1}'[Check for degraded arrays, then exit]'
'(--test -t)'{--test,-t}'[Generate a TestMessage event against each array at startup]'
)
fi
if (( $+words[(r)-(G|-grow)] )); then
args=(
'(--size -z)'{--size=,-z}'[Change the active size of devices in an array]:active size'
'(--raid-disks -n)'{--raid-disks=,-n}'[Change the number of active devices in a RAID1 array]:number of active devices'
)
fi
_mds () {
local -a vals
vals=( ${${${(M)${(f)"$(< /etc/mdadm.conf)"}##ARRAY *}//ARRAY /}%%[[:blank:]]*} )
_describe -t mds "RAID devices" vals
_arguments \
"(-h --help)"{-h,--help}'[Display a mode specific help message]'
}
modes=(-A --assemble -B --build -C --create -F --follow --monitor -G --grow -h --help -V --version)
misc=(-D --detail -E --examine -X --examine-bitmap -Q --query)
_arguments \
"($misc $modes)"{-A,--assemble}'[Assemble a pre-existing array]:::_mds' \
"($misc $modes)"{-B,--build}'[Build a legacy array without superblocks]:::_mds' \
"($misc $modes)"{-C,--create}'[Create a new array]' \
"($misc $modes)"{-F,--follow,--monitor}'[Select Monitor mode]' \
"($misc $modes)"{-G,--grow}'[Change the size or shape of an active array]' \
"($modes -D --detail -E --examine -X --examine-bitmap)"{-D,--detail}'[Print detail of one or more md devices]' \
"($modes -D --detail -E --examine -X --examine-bitmap -Q --query)"{-E,--examine}'[Print content of md superblock on device(s)]' \
"($modes -Q --query)"{-Q,--query}'[Examine a device]' \
"($modes -E --examine -X --examine-bitmap)"{-X,--examine-bitmap}'[Report information about a bitmap file]' \
"(-)"{-h,--help}'[Display general help message]' \
"(-)"{-V,--version}'[Print version information for mdadm]' \
"$args[@]"
next prev parent reply other threads:[~2009-04-11 21:29 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-29 12:30 new completions for iftop and tcpdump Tomasz Pala
2008-06-23 17:09 ` completion for ipset Tomasz Pala
2008-06-23 18:52 ` Tomasz Pala
2008-06-24 12:47 ` Completion for ethtool Tomasz Pala
2009-04-11 17:50 ` Tomasz Pala
2009-04-11 21:28 ` Tomasz Pala [this message]
2009-04-17 10:52 ` rpmbuild and mdadm completion Peter Stephenson
2009-04-16 9:16 ` Completion for ethtool Peter Stephenson
2009-04-11 18:07 ` completion for ipset Tomasz Pala
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090411212822.GA28891@polanet.pl \
--to=gotar@polanet.pl \
--cc=zsh-users@sunsite.dk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).