Ville Skyttä c875723bef Include trailing equals sign in options that take arguments that way.
This way it's clearer to users that an argument is expected.  It's
likely that this commit does not catch all such cases, but it should
do it for most of the affected commands I have installed.
2011-05-02 11:45:55 +03:00

78 lines
2.1 KiB
Bash

# Use of this file is deprecated. Upstream completion is available in
# mock > 1.1.0, use that instead.
# bash completion for mock
have mock || return
_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 -eq $cword ] && break
if [[ "$i" == --configdir ]] ; then
cfgdir="${words[((count+1))]}"
elif [[ "$i" == --configdir=* ]] ; then
cfgdir=${i/*=/}
fi
count=$((++count))
done
case $prev in
-h|--help|--copyin|--copyout|--arch|-D|--define|--with|--without|\
--uniqueext|--rpmbuild_timeout|--sources|--cwd)
return 0
;;
-r|--root)
COMPREPLY=( $( compgen -W "$( command ls $cfgdir )" -- $cur ) )
COMPREPLY=( ${COMPREPLY[@]/%.cfg/} )
return 0
;;
--configdir|--resultdir)
_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\s*archs\s*:\s*\(.*\)/\1/i p' )" \
-- "$cur" ) )
return 0
;;
--enable-plugin|--disable-plugin)
COMPREPLY=( $( compgen -W "$plugins" -- "$cur" ) )
return 0
;;
esac
$split && return 0
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
# Local variables:
# mode: shell-script
# sh-basic-offset: 4
# sh-indent-comment: t
# indent-tabs-mode: nil
# End:
# ex: ts=4 sw=4 et filetype=sh