koji: New completion.
This commit is contained in:
parent
bb02bcde80
commit
56672db701
4
completions/.gitignore
vendored
4
completions/.gitignore
vendored
@ -3,6 +3,7 @@ alpine
|
||||
alternatives
|
||||
animate
|
||||
apropos
|
||||
arm-koji
|
||||
asciidoc.py
|
||||
autoheader
|
||||
automake-1.11
|
||||
@ -104,6 +105,7 @@ pm-suspend
|
||||
pm-suspend-hybrid
|
||||
pmake
|
||||
postalias
|
||||
ppc-koji
|
||||
puppetca
|
||||
puppetd
|
||||
puppetdoc
|
||||
@ -133,6 +135,7 @@ rpm2targz
|
||||
rpm2txz
|
||||
rpmbuild
|
||||
rpmbuild-md5
|
||||
s390-koji
|
||||
sbcl-mt
|
||||
scp
|
||||
sdptool
|
||||
@ -145,6 +148,7 @@ smbget
|
||||
smbpasswd
|
||||
smbtar
|
||||
smbtree
|
||||
sparc-koji
|
||||
spovray
|
||||
stream
|
||||
tightvncviewer
|
||||
|
@ -148,6 +148,7 @@ bashcomp_DATA = a2x \
|
||||
killall \
|
||||
kldload \
|
||||
kldunload \
|
||||
koji \
|
||||
ktutil \
|
||||
larch \
|
||||
lastlog \
|
||||
@ -340,6 +341,7 @@ CLEANFILES = \
|
||||
alternatives \
|
||||
animate \
|
||||
apropos \
|
||||
arm-koji \
|
||||
asciidoc.py \
|
||||
autoheader \
|
||||
automake-1.11 \
|
||||
@ -441,6 +443,7 @@ CLEANFILES = \
|
||||
pm-suspend-hybrid \
|
||||
pmake \
|
||||
postalias \
|
||||
ppc-koji \
|
||||
puppetca \
|
||||
puppetd \
|
||||
puppetdoc \
|
||||
@ -470,6 +473,7 @@ CLEANFILES = \
|
||||
rpm2txz \
|
||||
rpmbuild \
|
||||
rpmbuild-md5 \
|
||||
s390-koji \
|
||||
sbcl-mt \
|
||||
scp \
|
||||
sdptool \
|
||||
@ -482,6 +486,7 @@ CLEANFILES = \
|
||||
smbpasswd \
|
||||
smbtar \
|
||||
smbtree \
|
||||
sparc-koji \
|
||||
spovray \
|
||||
stream \
|
||||
tightvncviewer \
|
||||
@ -634,6 +639,10 @@ symlinks:
|
||||
rm -f $(targetdir)/$$file && \
|
||||
$(LN_S) killall $(targetdir)/$$file ; \
|
||||
done
|
||||
for file in arm-koji ppc-koji s390-koji sparc-koji ; do \
|
||||
rm -f $(targetdir)/$$file && \
|
||||
$(LN_S) koji $(targetdir)/$$file ; \
|
||||
done
|
||||
for file in ldapadd ldapmodify ldapdelete ldapcompare ldapmodrdn \
|
||||
ldapwhoami ldappasswd ; do \
|
||||
rm -f $(targetdir)/$$file && \
|
||||
|
234
completions/koji
Normal file
234
completions/koji
Normal file
@ -0,0 +1,234 @@
|
||||
# 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|wait-repo)
|
||||
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"
|
||||
;;
|
||||
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
|
1
test/completion/koji.exp
Normal file
1
test/completion/koji.exp
Normal file
@ -0,0 +1 @@
|
||||
assert_source_completions koji
|
22
test/lib/completions/koji.exp
Normal file
22
test/lib/completions/koji.exp
Normal file
@ -0,0 +1,22 @@
|
||||
proc setup {} {
|
||||
save_env
|
||||
}
|
||||
|
||||
|
||||
proc teardown {} {
|
||||
assert_env_unmodified
|
||||
}
|
||||
|
||||
|
||||
setup
|
||||
|
||||
|
||||
assert_complete_any "koji "
|
||||
sync_after_int
|
||||
|
||||
|
||||
assert_complete_any "koji -"
|
||||
sync_after_int
|
||||
|
||||
|
||||
teardown
|
Loading…
x
Reference in New Issue
Block a user