# bash completion for mock -*- shell-script -*- # Use of this file is deprecated. Upstream completion is available in # mock > 1.1.0, use that instead. _mock() { local cur prev words cword split _init_completion -s || return local plugins='tmpfs root_cache yum_cache bind_mount ccache' local cfgdir=/etc/mock count=0 i for i in "${words[@]}"; do ((count == cword)) && break if [[ $i == --configdir ]]; then cfgdir="${words[count + 1]}" elif [[ $i == --configdir=* ]]; then cfgdir=${i/*=/} fi ((count++)) done case $prev in -h | --help | --copyin | --copyout | --arch | -D | --define | --with | --without | \ --uniqueext | --rpmbuild_timeout | --sources | --cwd) return ;; -r | --root) COMPREPLY=($(compgen -W "$(command ls $cfgdir)" -- "$cur")) COMPREPLY=(${COMPREPLY[@]/%.cfg/}) return ;; --configdir | --resultdir) _filedir -d return ;; --spec) _filedir spec return ;; --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 | command sed -ne 's/^\s*compatible\s\s*archs\s*:\s*\(.*\)/\1/i p')" \ -- "$cur")) return ;; --enable-plugin | --disable-plugin) COMPREPLY=($(compgen -W "$plugins" -- "$cur")) return ;; esac $split && return if [[ $cur == -* ]]; then COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) [[ ${COMPREPLY-} == *= ]] && compopt -o nospace else _filedir '@(?(no)src.r|s)pm' fi } && complete -F _mock mock # ex: filetype=sh