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
|
alternatives
|
||||||
animate
|
animate
|
||||||
apropos
|
apropos
|
||||||
|
arm-koji
|
||||||
asciidoc.py
|
asciidoc.py
|
||||||
autoheader
|
autoheader
|
||||||
automake-1.11
|
automake-1.11
|
||||||
@ -104,6 +105,7 @@ pm-suspend
|
|||||||
pm-suspend-hybrid
|
pm-suspend-hybrid
|
||||||
pmake
|
pmake
|
||||||
postalias
|
postalias
|
||||||
|
ppc-koji
|
||||||
puppetca
|
puppetca
|
||||||
puppetd
|
puppetd
|
||||||
puppetdoc
|
puppetdoc
|
||||||
@ -133,6 +135,7 @@ rpm2targz
|
|||||||
rpm2txz
|
rpm2txz
|
||||||
rpmbuild
|
rpmbuild
|
||||||
rpmbuild-md5
|
rpmbuild-md5
|
||||||
|
s390-koji
|
||||||
sbcl-mt
|
sbcl-mt
|
||||||
scp
|
scp
|
||||||
sdptool
|
sdptool
|
||||||
@ -145,6 +148,7 @@ smbget
|
|||||||
smbpasswd
|
smbpasswd
|
||||||
smbtar
|
smbtar
|
||||||
smbtree
|
smbtree
|
||||||
|
sparc-koji
|
||||||
spovray
|
spovray
|
||||||
stream
|
stream
|
||||||
tightvncviewer
|
tightvncviewer
|
||||||
|
@ -148,6 +148,7 @@ bashcomp_DATA = a2x \
|
|||||||
killall \
|
killall \
|
||||||
kldload \
|
kldload \
|
||||||
kldunload \
|
kldunload \
|
||||||
|
koji \
|
||||||
ktutil \
|
ktutil \
|
||||||
larch \
|
larch \
|
||||||
lastlog \
|
lastlog \
|
||||||
@ -340,6 +341,7 @@ CLEANFILES = \
|
|||||||
alternatives \
|
alternatives \
|
||||||
animate \
|
animate \
|
||||||
apropos \
|
apropos \
|
||||||
|
arm-koji \
|
||||||
asciidoc.py \
|
asciidoc.py \
|
||||||
autoheader \
|
autoheader \
|
||||||
automake-1.11 \
|
automake-1.11 \
|
||||||
@ -441,6 +443,7 @@ CLEANFILES = \
|
|||||||
pm-suspend-hybrid \
|
pm-suspend-hybrid \
|
||||||
pmake \
|
pmake \
|
||||||
postalias \
|
postalias \
|
||||||
|
ppc-koji \
|
||||||
puppetca \
|
puppetca \
|
||||||
puppetd \
|
puppetd \
|
||||||
puppetdoc \
|
puppetdoc \
|
||||||
@ -470,6 +473,7 @@ CLEANFILES = \
|
|||||||
rpm2txz \
|
rpm2txz \
|
||||||
rpmbuild \
|
rpmbuild \
|
||||||
rpmbuild-md5 \
|
rpmbuild-md5 \
|
||||||
|
s390-koji \
|
||||||
sbcl-mt \
|
sbcl-mt \
|
||||||
scp \
|
scp \
|
||||||
sdptool \
|
sdptool \
|
||||||
@ -482,6 +486,7 @@ CLEANFILES = \
|
|||||||
smbpasswd \
|
smbpasswd \
|
||||||
smbtar \
|
smbtar \
|
||||||
smbtree \
|
smbtree \
|
||||||
|
sparc-koji \
|
||||||
spovray \
|
spovray \
|
||||||
stream \
|
stream \
|
||||||
tightvncviewer \
|
tightvncviewer \
|
||||||
@ -634,6 +639,10 @@ symlinks:
|
|||||||
rm -f $(targetdir)/$$file && \
|
rm -f $(targetdir)/$$file && \
|
||||||
$(LN_S) killall $(targetdir)/$$file ; \
|
$(LN_S) killall $(targetdir)/$$file ; \
|
||||||
done
|
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 \
|
for file in ldapadd ldapmodify ldapdelete ldapcompare ldapmodrdn \
|
||||||
ldapwhoami ldappasswd ; do \
|
ldapwhoami ldappasswd ; do \
|
||||||
rm -f $(targetdir)/$$file && \
|
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