c875723bef
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.
78 lines
2.1 KiB
Bash
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
|