mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-01-09 20:33:34 -08:00
246 lines
6.2 KiB
Bash
246 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
|
|
--help | --help-commands | -!(-*)h*)
|
|
return
|
|
;;
|
|
--config | --keytab | -!(-*)[co])
|
|
_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 [[ -v 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 [[ ! -v 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: filetype=sh
|