bash-completion/completions/koji

248 lines
6.2 KiB
Bash

# koji completion -*- shell-script -*-
_koji_search()
{
COMPREPLY+=( $( compgen -W \
'$( "$1" -q search $2 "$cur*" 2>/dev/null )' -- "$cur" ) )
}
_koji_build()
{
_koji_search "$1" build
}
_koji_package()
{
_koji_search "$1" package
}
_koji_user()
{
_koji_search "$1" user
}
_koji_tag()
{
COMPREPLY+=( $( compgen -W '$( "$1" -q list-tags 2>/dev/null )' \
-- "$cur" ) )
}
_koji_target()
{
COMPREPLY+=( $( compgen -W '$( "$1" -q list-targets 2>/dev/null |
awk "{ print \$1 }" )' -- "$cur" ) )
}
_koji()
{
local cur prev words cword split
_init_completion -s || return
local commandix command
for (( commandix=1; commandix < cword; commandix++ )); do
if [[ ${words[commandix]} != -* ]]; then
command=${words[commandix]}
break
fi
done
case $prev in
-h|--help|--help-commands)
return
;;
-c|--config|--keytab|-o)
_filedir
return
;;
--runas|--user|--editor|--by)
_koji_user "$1"
return
;;
--authtype)
COMPREPLY=( $( compgen -W 'noauth ssl password kerberos' \
-- "$cur" ) )
return
;;
--topdir)
_filedir -d
return
;;
--type)
case $command in
latest-pkg|list-tagged)
COMPREPLY=( $( compgen -W 'maven' -- "$cur" ) )
;;
esac
return
;;
--name)
case $command in
list-targets)
_koji_target "$1"
;;
esac
return
;;
--owner)
_koji_user "$1"
return
;;
--tag|--latestfrom)
_koji_tag "$1"
return
;;
--package)
_koji_package "$1"
return
;;
--build)
_koji_build "$1"
return
;;
--build-target)
_koji_target "$1"
return
;;
esac
$split && return
if [[ $command ]]; then
if [[ $cur == -* ]]; then
COMPREPLY=( $( compgen -W \
'$( _parse_help "$1" "$command --help" )' -- "$cur" ) )
[[ $COMPREPLY == *= ]] && compopt -o nospace
return
fi
# How many'th non-option arg (1-based) for $command are we completing?
local i nth=1
for (( i=commandix+1; i < cword; i++ )); do
[[ ${words[i]} == -* ]] || (( nth++ ))
done
case $command in
build|maven-build|win-build)
case $nth in
1)
_koji_target "$1"
;;
2)
_filedir src.rpm
;;
esac
;;
cancel)
_koji_build "$1"
;;
chain-build)
case $nth in
1)
_koji_target "$1"
;;
esac
;;
download-build)
case $nth in
1)
_koji_build "$1"
;;
esac
;;
import-comps)
case $nth in
1)
_filedir xml
;;
2)
_koji_tag "$1"
;;
esac
;;
latest-by-tag)
_koji_package "$1"
;;
latest-pkg|list-groups|list-tag-inheritance|show-groups)
case $nth in
1)
_koji_tag "$1"
;;
esac
;;
list-tagged)
case $nth in
1)
_koji_tag "$1"
;;
2)
_koji_package "$1"
;;
esac
;;
list-untagged)
case $nth in
1)
_koji_package "$1"
;;
esac
;;
move-pkg)
case $nth in
1|2)
_koji_tag "$1"
;;
*)
_koji_package "$1"
;;
esac
;;
search)
case $nth in
1)
COMPREPLY=( $( compgen -W 'package build tag target
user host rpm' -- "$cur" ) )
;;
esac
;;
tag-pkg|untag-pkg)
case $nth in
1)
_koji_tag "$1"
;;
*)
_koji_package "$1"
;;
esac
;;
taginfo)
_koji_tag "$1"
;;
wait-repo)
case $nth in
1)
for (( i=commandix+1; i < cword; i++ )); do
if [[ ${words[i]} == --target ]]; then
_koji_target "$1"
return
fi
done
_koji_tag "$1"
;;
esac
;;
esac
return
fi
if [[ $cur == -* ]]; then
COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) )
[[ $COMPREPLY == *= ]] && compopt -o nospace
elif [[ ! $command ]]; then
COMPREPLY=( $( compgen -W '$( "$1" --help-commands 2>/dev/null | \
awk "/^( +|\t)/ { print \$1 }" )' -- "$cur" ) )
fi
} &&
complete -F _koji koji arm-koji ppc-koji s390-koji sparc-koji
# ex: ts=4 sw=4 et filetype=sh