[yum-commits] yum-utils.bash
Ville Skyttä
scop at osuosl.org
Sun Apr 24 20:05:06 UTC 2011
yum-utils.bash | 174 +++++++++++++++++++++++++++++++++++----------------------
1 file changed, 107 insertions(+), 67 deletions(-)
New commits:
commit ece33b6cd26eb3a2051543f91845655a3d0d69b1
Author: Ville Skyttä <ville.skytta at iki.fi>
Date: Sun Apr 24 23:04:56 2011 +0300
Use functions from recent bash-completion if available.
diff --git a/yum-utils.bash b/yum-utils.bash
index 29dc9bc..509ec3a 100644
--- a/yum-utils.bash
+++ b/yum-utils.bash
@@ -1,95 +1,117 @@
# bash completion for yum-utils
+_yu_init_completion()
+{
+ if declare -F _get_comp_words_by_ref &>/dev/null ; then
+ _get_comp_words_by_ref -n = cur prev words
+ else
+ cur=$1 prev=$2 words=("${COMP_WORDS[@]}")
+ fi
+ declare -F _split_longopt &>/dev/null && _split_longopt && split=true
+}
+
# repomanage
_yu_repomanage()
{
- COMPREPLY=()
+ local cur prev words=() split=false
+ _yu_init_completion "$2" "$3"
- case "$3" in
+ case $prev in
-h|--help)
return 0
;;
-k|--keep)
- COMPREPLY=( $( compgen -W '1 2 3 4 5 6 7 8 9' -- "$2" ) )
+ COMPREPLY=( $( compgen -W '1 2 3 4 5 6 7 8 9' -- "$cur" ) )
return 0
;;
esac
- if [[ "$2" == -* ]] ; then
+ $split && return 0
+
+ if [[ $cur == -* ]] ; then
COMPREPLY=( $( compgen -W '--old --new --space --keep --nocheck
- --help' -- "$2" ) )
+ --help' -- "$cur" ) )
return 0
fi
- COMPREPLY=( $( compgen -d -- "$2" ) )
+ COMPREPLY=( $( compgen -d -- "$cur" ) )
} &&
complete -F _yu_repomanage -o filenames repomanage repomanage.py
# package-cleanup
_yu_package_cleanup()
{
- COMPREPLY=()
+ local cur prev words=() split=false
+ _yu_init_completion "$2" "$3"
- _yum_complete_baseopts "$2" "$3" 2>/dev/null && return 0
+ _yum_complete_baseopts "$cur" "$prev" 2>/dev/null && return 0
- case "$3" in
+ case $prev in
--leaf-regex|--qf|--queryformat)
return 0
;;
--count)
- COMPREPLY=( $( compgen -W '1 2 3 4 5 6 7 8 9' -- "$2" ) )
+ COMPREPLY=( $( compgen -W '1 2 3 4 5 6 7 8 9' -- "$cur" ) )
return 0
;;
esac
+ $split && return 0
+
COMPREPLY=( $( compgen -W '$( _yum_baseopts 2>/dev/null ) --problems
--queryformat --orphans --dupes --cleandupes --noscripts --leaves --all
--leaf-regex --exclude-devel --exclude-bin --oldkernels --count
- --keepdevel' -- "$2" ) )
+ --keepdevel' -- "$cur" ) )
} &&
complete -F _yu_package_cleanup -o filenames package-cleanup package-cleanup.py
# verifytree
_yu_verifytree()
{
- COMPREPLY=()
+ local cur prev words=() split=false
+ _yu_init_completion "$2" "$3"
- case "$3" in
+ case $prev in
-h|--help|-t|--testopia)
return 0
;;
esac
- if [[ "$2" == -* ]] ; then
+ $split && return 0
+
+ if [[ $cur == -* ]] ; then
COMPREPLY=( $( compgen -W '--help --checkall --testopia --treeinfo' \
- -- "$2" ) )
+ -- "$cur" ) )
return 0
fi
- COMPREPLY=( $( compgen -d -- "$2" ) )
+ COMPREPLY=( $( compgen -d -- "$cur" ) )
} &&
complete -F _yu_verifytree -o filenames verifytree verifytree.py
# repo-graph
_yu_repo_graph()
{
- COMPREPLY=()
+ local cur prev words=() split=false
+ _yu_init_completion "$2" "$3"
- case "$3" in
+ case $prev in
-h|--help)
return 0
;;
--repoid)
- _yum_repolist all "$2" 2>/dev/null
+ _yum_repolist all "$cur" 2>/dev/null
return 0
;;
-c)
- COMPREPLY=( $( compgen -f -o plusdirs -X '!*.conf' -- "$2" ) )
+ COMPREPLY=( $( compgen -f -o plusdirs -X '!*.conf' -- "$cur" ) )
return 0
;;
esac
- COMPREPLY=( $( compgen -W '--help --repoid -c' -- "$2" ) )
+ $split && return 0
+
+ COMPREPLY=( $( compgen -W '--help --repoid -c' -- "$cur" ) )
} &&
complete -F _yu_repo_graph -o filenames repo-graph repo-graph.py
@@ -98,70 +120,74 @@ _yu_repo_rss()
{
COMPREPLY=()
- case "$3" in
+ case $3 in
-h|--help|-l|-t|-d|-r|-a)
return 0
;;
-f)
- COMPREPLY=( $( compgen -f -o plusdirs -X '!*.xml' -- "$2" ) )
+ COMPREPLY=( $( compgen -f -o plusdirs -X '!*.xml' -- "$cur" ) )
return 0
;;
-c)
- COMPREPLY=( $( compgen -f -o plusdirs -X '!*.conf' -- "$2" ) )
+ COMPREPLY=( $( compgen -f -o plusdirs -X '!*.conf' -- "$cur" ) )
return 0
;;
esac
COMPREPLY=( $( compgen -W '--help -f -l -t -d -r --tempcache -g -a -c' \
-- "$2" ) )
- [[ "$2" == -* ]] || _yum_repolist all "$2" 2>/dev/null || return 0
+ [[ $2 == -* ]] || _yum_repolist all "$2" 2>/dev/null || return 0
} &&
complete -F _yu_repo_rss -o filenames repo-rss repo-rss.py
# repoclosure
_yu_repoclosure()
{
- COMPREPLY=()
+ local cur prev words=() split=false
+ _yu_init_completion "$2" "$3"
- case "$3" in
+ case $prev in
-h|--help|-a|--arch|--basearch|--repofrompath)
return 0
;;
-c|--config)
- COMPREPLY=( $( compgen -f -o plusdirs -X '!*.conf' -- "$2" ) )
+ COMPREPLY=( $( compgen -f -o plusdirs -X '!*.conf' -- "$cur" ) )
return 0
;;
-l|--lookaside|-r|--repoid)
- _yum_repolist all "$2" 2>/dev/null
+ _yum_repolist all "$cur" 2>/dev/null
return 0
;;
-p|--pkg)
- _yum_list all "$2" 2>/dev/null
+ _yum_list all "$cur" 2>/dev/null
return 0
;;
-g|--group)
- _yum_grouplist "" "$2" 2>/dev/null
+ _yum_grouplist "" "$cur" 2>/dev/null
return 0
;;
esac
+ $split && return 0
+
COMPREPLY=( $( compgen -W '--help --config --arch --basearch --builddeps
--lookaside --repoid --tempcache --quiet --newest --repofrompath --pkg
- --group' -- "$2" ) )
+ --group' -- "$cur" ) )
} &&
complete -F _yu_repoclosure -o filenames repoclosure repoclosure.py
# repoquery
_yu_repoquery()
{
- COMPREPLY=()
+ local cur prev words=() split=false
+ _yu_init_completion "$2" "$3"
- local groupmode=false
- for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )) ; do
- case "${COMP_WORDS[i]}" in -g|--group) groupmode=true ; break ;; esac
+ local word groupmode=false
+ for word in "${words[@]}" ; do
+ case $word in -g|--group) groupmode=true ; break ;; esac
done
- case "$3" in
+ case $prev in
-h|--help|--version|-f|--file|--qf|--queryformat|--resolve|--archlist|\
--whatprovides|--whatrequires|--whatobsoletes|--whatconflicts|\
--repofrompath|--level|--search-fields)
@@ -169,49 +195,51 @@ _yu_repoquery()
;;
-l|--list|-i|--info|-R|--requires)
if $groupmode ; then
- _yum_grouplist "" "$2" 2>/dev/null
+ _yum_grouplist "" "$cur" 2>/dev/null
else
- _yum_list all "$2" 2>/dev/null
+ _yum_list all "$cur" 2>/dev/null
fi
return 0
;;
--provides|--obsoletes|--conflicts|--groupmember|--changelog|\
--location|--nevra|--envra|--nvr|-s|--source)
- _yum_list all "$2" 2>/dev/null
+ _yum_list all "$cur" 2>/dev/null
return 0
;;
--grouppkgs)
COMPREPLY=( $( compgen -W 'all default optional mandatory' \
- -- "$2" ) )
+ -- "$cur" ) )
return 0
;;
--pkgnarrow)
COMPREPLY=( $( compgen -W 'all available updates installed extras
- obsoletes recent repos' -- "$2" ) )
+ obsoletes recent repos' -- "$cur" ) )
return 0
;;
--repoid)
- _yum_repolist all "$2" 2>/dev/null
+ _yum_repolist all "$cur" 2>/dev/null
return 0
;;
--enablerepo)
- _yum_repolist disabled "$2" 2>/dev/null
+ _yum_repolist disabled "$cur" 2>/dev/null
return 0
;;
--disablerepo)
- _yum_repolist enabled "$2" 2>/dev/null
+ _yum_repolist enabled "$cur" 2>/dev/null
return 0
;;
-c|--config)
- COMPREPLY=( $( compgen -f -o plusdirs -X '!*.conf' -- "$2" ) )
+ COMPREPLY=( $( compgen -f -o plusdirs -X '!*.conf' -- "$cur" ) )
return 0
;;
--output)
- COMPREPLY=( $( compgen -W 'text ascii-tree dot-tree' -- "$2" ) )
+ COMPREPLY=( $( compgen -W 'text ascii-tree dot-tree' -- "$cur" ) )
return 0
;;
esac
+ $split && return 0
+
COMPREPLY=( $( compgen -W '--version --help --list --info --file
--queryformat --groupmember --all --requires --provides --obsoletes
--conflicts --changelog --location --nevra --envra --nvr --source
@@ -220,33 +248,36 @@ _yu_repoquery()
--pkgnarrow --installed --show-duplicates --repoid --enablerepo
--disablerepo --repofrompath --plugins --quiet --verbose --cache
--tempcache --querytags --config --level --output --search
- --search-fields' -- "$2" ) )
+ --search-fields' -- "$cur" ) )
} &&
complete -F _yu_repoquery -o filenames repoquery repoquery.py
# yumdb
_yu_yumdb()
{
- COMPREPLY=()
+ local cur prev words=() split=false
+ _yu_init_completion "$2" "$3"
- case "$3" in
+ case $prev in
-h|--help|-version)
return 0
;;
-c|--config)
- COMPREPLY=( $( compgen -f -o plusdirs -X '!*.conf' -- "$2" ) )
+ COMPREPLY=( $( compgen -f -o plusdirs -X '!*.conf' -- "$cur" ) )
return 0
;;
shell)
- COMPREPLY=( $( compgen -f -o plusdirs -- "$2" ) )
+ COMPREPLY=( $( compgen -f -o plusdirs -- "$cur" ) )
return 0
;;
esac
+ $split && return 0
+
if [ $COMP_CWORD -le 1 ] ; then
COMPREPLY=( $( compgen -W 'get set del rename rename-force copy search
exist unset info shell --version --help --noplugins --config' \
- -- "$2" ) )
+ -- "$cur" ) )
fi
} &&
complete -F _yu_yumdb -o filenames yumdb yumdb.py
@@ -254,50 +285,59 @@ complete -F _yu_yumdb -o filenames yumdb yumdb.py
# repodiff
_yu_repodiff()
{
- COMPREPLY=()
+ local cur prev words=() split=false
+ _yu_init_completion "$2" "$3"
- case "$3" in
+ case $prev in
-h|--help|--version|-n|--new|-o|--old|-a|--archlist)
return 0
;;
esac
+ $split && return 0
+
COMPREPLY=( $( compgen -W '--version --help --new --old --quiet --archlist
- --size --simple' -- "$2" ) )
+ --size --simple' -- "$cur" ) )
} &&
complete -F _yu_repodiff repodiff repodiff.py
# yum-builddep
_yu_builddep()
{
- COMPREPLY=()
+ local cur prev words=() split=false
+ _yu_init_completion "$2" "$3"
+
+ _yum_complete_baseopts "$cur" "$prev" && return 0
- _yum_complete_baseopts "$2" "$3" && return 0
+ $split && return 0
- if [[ $2 == -* ]] ; then
- COMPREPLY=( $( compgen -W '$( _yum_baseopts 2>/dev/null )' -- "$2" ) )
+ if [[ $cur == -* ]] ; then
+ COMPREPLY=( $( compgen -W '$( _yum_baseopts 2>/dev/null )' -- "$cur" ) )
return 0
fi
- COMPREPLY=( $( compgen -f -o plusdirs -X "!*.spec" -- "$2" ) )
- [[ $2 != */* && $2 != ~* ]] && _yum_list all "$2" 2>/dev/null
+ COMPREPLY=( $( compgen -f -o plusdirs -X "!*.spec" -- "$cur" ) )
+ [[ $cur != */* && $cur != ~* ]] && _yum_list all "$cur" 2>/dev/null
} &&
complete -F _yu_builddep -o filenames yum-builddep yum-builddep.py
# debuginfo-install
_yu_debuginfo_install()
{
- COMPREPLY=()
+ local cur prev words=() split=false
+ _yu_init_completion "$2" "$3"
+
+ _yum_complete_baseopts "$cur" "$prev" && return 0
- _yum_complete_baseopts "$2" "$3" && return 0
+ $split && return 0
- if [[ $2 == -* ]] ; then
+ if [[ $cur == -* ]] ; then
COMPREPLY=( $( compgen -W '$( _yum_baseopts 2>/dev/null )
- --no-debuginfo-plugin' -- "$2" ) )
+ --no-debuginfo-plugin' -- "$cur" ) )
return 0
fi
- _yum_list all "$2"
+ _yum_list all "$cur"
} &&
complete -F _yu_debuginfo_install debuginfo-install debuginfo-install.py
More information about the Yum-commits
mailing list