# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*- # ex: ts=8 sw=8 noet filetype=sh # # bash completion for mock _mock() { local cur prev plugins cfgdir COMPREPLY=() cur=`_get_cword` prev=${COMP_WORDS[COMP_CWORD-1]} plugins='tmpfs root_cache yum_cache bind_mount ccache' cfgdir=/etc/mock count=0 for i in "${COMP_WORDS[@]}" ; do [ $count -eq $COMP_CWORD ] && break if [[ "$i" == --configdir ]] ; then cfgdir="${COMP_WORDS[((count+1))]}" elif [[ "$i" == --configdir=* ]] ; then cfgdir=${i/*=/} fi count=$((++count)) done # --name=value style option if [[ "$cur" == --?*=* ]] ; then prev="${cur/=*}" cur="${cur#$prev=}" fi case $prev in -@(h|-help|-copy@(in|out)|-arch|D|-define|-with?(out)|-uniqueext|-rpmbuild_timeout|-sources|-cwd)) return 0 ;; -@(r|-root)) COMPREPLY=( $( command ls $cfgdir | \ sed -ne 's/^\('$cur'.*\)\.cfg$/\1/p') ) return 0 ;; --@(config|result)dir) _filedir -d return 0 ;; --spec) _filedir spec return 0 ;; --target) # Yep, compatible archs, not compatible build archs # (e.g. ix86 chroot builds in x86_64 mock host) # This would actually depend on what the target root # can be used to build for... COMPREPLY=( $( compgen -W "$( command rpm --showrc | sed -ne 's/^\s*compatible\s\+archs\s*:\s*\(.*\)/\1/i p' )" -- $cur ) ) return 0 ;; --@(en|dis)able-plugin) COMPREPLY=( $( compgen -W "$plugins" -- $cur ) ) return 0 ;; esac if [[ "$cur" == -* ]] ; then COMPREPLY=( $( compgen -W '--version -h --help --rebuild \ --buildsrpm --shell --chroot --clean --init \ --installdeps --install --update --orphanskill \ --copyin --copyout -r --root --offline --no-clean \ --cleanup-after --no-cleanup-after --arch --target \ -D --define --with --without --resultdir --uniqueext \ --configdir --rpmbuild_timeout --unpriv --cwd --spec \ --sources -v --verbose -q --quiet --trace \ --enable-plugin --disable-plugin --print-root-path' \ -- $cur ) ) else _filedir '?(no)src.rpm' fi } complete -F _mock $filenames mock