[yum-commits] Branch 'yum-3_2_X' - etc/yum.bash
Ville Skyttä
scop at osuosl.org
Sun Apr 24 19:56:36 UTC 2011
etc/yum.bash | 50 ++++++++++++++++++++++++--------------------------
1 file changed, 24 insertions(+), 26 deletions(-)
New commits:
commit 356d252dee0d7164731fd82da45e9362c3485a2e
Author: Ville Skyttä <ville.skytta at iki.fi>
Date: Sun Apr 24 22:54:18 2011 +0300
Don't do long option splitting within base option completion.
Functions should do the splitting themselves, giving them better
control over when to stop completing if a split occurred.
diff --git a/etc/yum.bash b/etc/yum.bash
index b23d211..f1e06e8 100644
--- a/etc/yum.bash
+++ b/etc/yum.bash
@@ -95,60 +95,57 @@ _yum_transactions()
# return 0 if no more completions should be sought, 1 otherwise
_yum_complete_baseopts()
{
- local cur=$1 prev=$2 split=false # cur,prev for _split_longopt
- declare -F _split_longopt &>/dev/null && _split_longopt && split=true
-
- case $prev in
+ case $2 in
-d|--debuglevel|-e|--errorlevel)
- COMPREPLY=( $( compgen -W '0 1 2 3 4 5 6 7 8 9 10' -- "$cur" ) )
+ COMPREPLY=( $( compgen -W '0 1 2 3 4 5 6 7 8 9 10' -- "$1" ) )
return 0
;;
--rpmverbosity)
COMPREPLY=( $( compgen -W 'info critical emergency error warn
- debug' -- "$cur" ) )
+ debug' -- "$1" ) )
return 0
;;
-c|--config)
- COMPREPLY=( $( compgen -f -o plusdirs -X "!*.conf" -- "$cur" ) )
+ COMPREPLY=( $( compgen -f -o plusdirs -X "!*.conf" -- "$1" ) )
return 0
;;
--installroot|--downloaddir)
- COMPREPLY=( $( compgen -d -- "$cur" ) )
+ COMPREPLY=( $( compgen -d -- "$1" ) )
return 0
;;
--enablerepo)
- _yum_repolist disabled "$cur"
+ _yum_repolist disabled "$1"
return 0
;;
--disablerepo)
- _yum_repolist enabled "$cur"
+ _yum_repolist enabled "$1"
return 0
;;
--disableexcludes)
- _yum_repolist all "$cur"
- COMPREPLY=( $( compgen -W '${COMPREPLY[@]} all main' -- "$cur" ) )
+ _yum_repolist all "$1"
+ COMPREPLY=( $( compgen -W '${COMPREPLY[@]} all main' -- "$1" ) )
return 0
;;
--enableplugin)
- _yum_plugins 0 "$cur"
+ _yum_plugins 0 "$1"
return 0
;;
--disableplugin)
- _yum_plugins 1 "$cur"
+ _yum_plugins 1 "$1"
return 0
;;
--color)
- COMPREPLY=( $( compgen -W 'always auto never' -- "$cur" ) )
+ COMPREPLY=( $( compgen -W 'always auto never' -- "$1" ) )
return 0
;;
@@ -159,35 +156,31 @@ _yum_complete_baseopts()
--download-order)
COMPREPLY=( $( compgen -W 'default smallestfirst largestfirst' \
- -- "$cur" ) )
+ -- "$1" ) )
return 0
;;
--override-protection)
- _yum_list installed "$cur"
+ _yum_list installed "$1"
return 0
;;
--verify-configuration-files)
- COMPREPLY=( $( compgen -W '1 0' -- "$cur" ) )
+ COMPREPLY=( $( compgen -W '1 0' -- "$1" ) )
return 0
;;
esac
- $split && return 0 || return 1
+ return 1
}
_yum()
{
COMPREPLY=()
- local yum=$1
- local cur prev
- local -a words
- if declare -F _get_comp_words_by_ref &>/dev/null ; then
+ local yum=$1 cur=$2 prev=$3 words=("${COMP_WORDS[@]}")
+ declare -F _get_comp_words_by_ref &>/dev/null && \
_get_comp_words_by_ref -n = cur prev words
- else
- cur=$2 prev=$3 words=("${COMP_WORDS[@]}")
- fi
+
# Commands offered as completions
local cmds=( check check-update clean deplist distro-sync downgrade
groupinfo groupinstall grouplist groupremove help history info install
@@ -337,8 +330,13 @@ _yum()
;;
esac
+ local split=false
+ declare -F _split_longopt &>/dev/null && _split_longopt && split=true
+
_yum_complete_baseopts "$cur" "$prev" && return 0
+ $split && return 0
+
COMPREPLY=( $( compgen -W '$( _yum_baseopts ) ${cmds[@]}' -- "$cur" ) )
} &&
complete -F _yum -o filenames yum yummain.py
More information about the Yum-commits
mailing list