diff options
Diffstat (limited to 'completions/_yum')
-rw-r--r-- | completions/_yum | 77 |
1 files changed, 39 insertions, 38 deletions
diff --git a/completions/_yum b/completions/_yum index d5e06eca..224ea254 100644 --- a/completions/_yum +++ b/completions/_yum @@ -5,16 +5,16 @@ _yum_list() { - if [[ "$1" == all ]]; then + if [[ $1 == all ]]; then # Try to strip in between headings like "Available Packages" # This will obviously only work for English :P - COMPREPLY=( $(yum -d 0 -C list $1 "$cur*" 2>/dev/null | \ + COMPREPLY=($(yum -d 0 -C list $1 "$cur*" 2>/dev/null | command sed -ne '/^Available /d' -e '/^Installed /d' -e '/^Updated /d' \ - -e 's/[[:space:]].*//p') ) + -e 's/[[:space:]].*//p')) else # Drop first line (e.g. "Updated Packages") - COMPREPLY=( $(yum -d 0 -C list $1 "$cur*" 2>/dev/null | \ - command sed -ne 1d -e 's/[[:space:]].*//p') ) + COMPREPLY=($(yum -d 0 -C list $1 "$cur*" 2>/dev/null | + command sed -ne 1d -e 's/[[:space:]].*//p')) fi } @@ -23,14 +23,14 @@ _yum_repolist() # -d 0 causes repolist to output nothing as of yum 3.2.22: # http://yum.baseurl.org/ticket/83 # Drop first ("repo id repo name") and last ("repolist: ...") rows - yum --noplugins -C repolist $1 2>/dev/null | \ + yum --noplugins -C repolist $1 2>/dev/null | command sed -ne '/^repo\s\s*id/d' -e '/^repolist:/d' -e 's/[[:space:]].*//p' } _yum_plugins() { - command ls /usr/lib/yum-plugins/*.py{,c,o} 2>/dev/null \ - | command sed -ne 's|.*/\([^./]*\)\.py[co]\{0,1\}$|\1|p' | sort -u + command ls /usr/lib/yum-plugins/*.py{,c,o} 2>/dev/null | + command sed -ne 's|.*/\([^./]*\)\.py[co]\{0,1\}$|\1|p' | sort -u } _yum() @@ -39,16 +39,17 @@ _yum() _init_completion -s || return local special i - for (( i=0; i < ${#words[@]}-1; i++ )); do + for ((i = 1; i < ${#words[@]} - 1; i++)); do if [[ ${words[i]} == @(install|update|upgrade|remove|erase|deplist|info) ]]; then special=${words[i]} + break fi done - if [[ -n $special ]]; then + if [[ -v special ]]; then # TODO: install|update|upgrade should not match *src.rpm - if [[ "$cur" == @(*/|[.~])* && \ - "$special" == @(deplist|install|update|upgrade) ]]; then + if [[ $cur == @(*/|[.~])* && \ + $special == @(deplist|install|update|upgrade) ]]; then _filedir rpm return fi @@ -57,15 +58,15 @@ _yum() _yum_list available return ;; - deplist|info) + deplist | info) _yum_list all return ;; - upgrade|update) + upgrade | update) _yum_list updates return ;; - remove|erase) + remove | erase) # _rpm_installed_packages is not arch-qualified _yum_list installed return @@ -75,22 +76,22 @@ _yum() case $prev in list) - COMPREPLY=( $(compgen -W 'all available updates installed extras - obsoletes recent' -- "$cur") ) + COMPREPLY=($(compgen -W 'all available updates installed extras + obsoletes recent' -- "$cur")) ;; clean) - COMPREPLY=( $(compgen -W 'packages headers metadata cache dbcache - all' -- "$cur") ) + COMPREPLY=($(compgen -W 'packages headers metadata cache dbcache + all' -- "$cur")) ;; repolist) - COMPREPLY=( $(compgen -W 'all enabled disabled' -- "$cur") ) + COMPREPLY=($(compgen -W 'all enabled disabled' -- "$cur")) ;; - localinstall|localupdate) + localinstall | localupdate) # TODO: should not match *src.rpm _filedir rpm ;; - -d|-e) - COMPREPLY=( $(compgen -W '{0..10}' -- "$cur") ) + -d | -e) + COMPREPLY=($(compgen -W '{0..10}' -- "$cur")) ;; -c) _filedir @@ -99,45 +100,45 @@ _yum() _filedir -d ;; --enablerepo) - COMPREPLY=( $(compgen -W '$(_yum_repolist disabled)' -- "$cur") ) + COMPREPLY=($(compgen -W '$(_yum_repolist disabled)' -- "$cur")) ;; --disablerepo) - COMPREPLY=( $(compgen -W '$(_yum_repolist enabled)' -- "$cur") ) + COMPREPLY=($(compgen -W '$(_yum_repolist enabled)' -- "$cur")) ;; --disableexcludes) - COMPREPLY=( $(compgen -W '$(_yum_repolist all) all main' \ - -- "$cur") ) + COMPREPLY=($(compgen -W '$(_yum_repolist all) all main' \ + -- "$cur")) ;; - --enableplugin|--disableplugin) - COMPREPLY=( $(compgen -W '$(_yum_plugins)' -- "$cur") ) + --enableplugin | --disableplugin) + COMPREPLY=($(compgen -W '$(_yum_plugins)' -- "$cur")) ;; --color) - COMPREPLY=( $(compgen -W 'always auto never' -- "$cur") ) + COMPREPLY=($(compgen -W 'always auto never' -- "$cur")) ;; - -R|-x|--exclude) + -R | -x | --exclude) # argument required but no completions available return ;; - -h|--help|--version) + -h | --help | --version) # no other options useful with these return ;; *) - COMPREPLY=( $(compgen -W 'install update check-update upgrade + COMPREPLY=($(compgen -W 'install update check-update upgrade remove erase list info provides whatprovides clean makecache groupinstall groupupdate grouplist groupremove groupinfo search shell resolvedep localinstall localupdate deplist - repolist help' -- "$cur") ) + repolist help' -- "$cur")) ;; esac $split && return - if [[ "$cur" == -* ]]; then - COMPREPLY=( $(compgen -W '$(_parse_help "$1")' -- "$cur") ) - [[ $COMPREPLY == *= ]] && compopt -o nospace + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + [[ ${COMPREPLY-} == *= ]] && compopt -o nospace fi } && -complete -F _yum yum + complete -F _yum yum # ex: filetype=sh |