1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-02 22:11:54 +02:00

unposted: updated _yum from Scott Murray

This commit is contained in:
Peter Stephenson 2005-12-19 20:24:20 +00:00
parent 7a389a2fc3
commit 95af03ac65
2 changed files with 43 additions and 13 deletions

View file

@ -1,3 +1,8 @@
2005-12-19 Peter Stephenson <p.w.stephenson@ntlworld.com>
* unposted: Scott Murray <semurray@ntlworld.com>:
Completion/Redhat/Command/_yum: update.
2005-12-19 Peter Stephenson <pws@csr.com>
* 22082: Src/Modules/stat.c: print out UID or GID instead

View file

@ -5,8 +5,6 @@ _yum()
{
local curcontext="$curcontext" state lstate line
local comp_num='compadd "$expl[@]" -S0 -r "0-9" - ""'
_arguments -s \
{-h,--help}'[show the help message]' \
{-t,--tolerant}'[be tolerant of errors]' \
@ -17,9 +15,9 @@ _yum()
'-e[Error level (0-10)]:Error level' \
'-y[Answer yes for all questions]' \
'--installroot=[Set install root]:Install Root:_files -/' \
'--enablerepo=[Enable or or more repositories]:Repos to enable' \
'--disablerepo=[Disable one or more repositories]:Disable Repos' \
'--exclude=[Exclude package(s) by name or glob]:Exclude Repos' \
'*--enablerepo=[Enable or or more repositories]:Repos to enable:_yum_disabled_repos_list' \
'*--disablerepo=[Disable one or more repositories]:Disable Repos:_yum_enabled_repos_list' \
'--exclude=[Exclude package(s) by name or glob]:Exclude Packages' \
'--version[Show yum version]' \
'--obseletes[Enable obsoletes processing during updates]' \
'--noplugins[Disable yum plugins]' \
@ -92,7 +90,7 @@ _yum_all_pkgs()
! _retrieve_cache ALL;
then
local prog="yum -C list all | sed 's/\s.*//' | grep '\.'"
_all_pkgs=( $(_call_program allpackages $prog 2>/dev/null) )
_all_pkgs=( $(kages $prog 2>/dev/null) )
_store_cache ALL _all_pkg
fi
}
@ -103,8 +101,7 @@ _yum_installed_pkgs()
if ( [[ ${+_installed_pkgs} -eq 0 ]] || _cache_invalid INSTALLED ) &&
! _retrieve_cache INSTALLED;
then
local prog="yum -C list installed | sed 's/\s.*//' | grep '\.'"
_installed_pkgs=( $(_call_program ipackages $prog 2>/dev/null) )
_installed_pkgs=( $(yum -C list installed | sed 's/\s.*//' | grep '\.' 2>/dev/null) )
_store_cache INSTALLED _installed_pkgs
fi
}
@ -115,8 +112,7 @@ _yum_available_pkgs()
if ( [[ ${+_available_pkgs} -eq 0 ]] || _cache_invalid AVAILABLE ) &&
! _retrieve_cache AVAILABLE;
then
local prog="yum -C list available | sed 's/\s.*//' | grep '\.'"
_available_pkgs=( $(_call_program apackages $prog 2>/dev/null) )
_available_pkgs=( $(yum -C list available | sed 's/\s.*//' | grep '\.' 2>/dev/null) )
_store_cache AVAILABLE _available_pkgs
fi
}
@ -127,12 +123,41 @@ _yum_upgrade_pkgs()
if ( [[ ${+_upgrade_pkgs} -eq 0 ]] || _cache_invalid UPGRADE ) &&
! _retrieve_cache UPGRADE;
then
local prog="yum -C list upgrade | sed 's/\s.*//' | grep '\.'"
_upgrade_pkgs=( $(_call_program upackages $prog 2>/dev/null) )
_upgrade_pkgs=( $(yum -C list upgrade | sed 's/\s.*//' | grep '\.' 2>/dev/null) )
_store_cache UPGRADE _upgrade_pkgs
fi
}
# Gets the list of defined repos
yum_repos() {
local trepo
local -a tarray
tarray=( $(egrep -h '(^\[.*\]|^enabled.*=)' /etc/yum.repos.d/*.repo /etc/yum.conf | sed -e 's/ //g' | sed -e 's/\[//g' | sed -e 's/\].*$//g' 2>/dev/null) )
local -i eindex=0
local -i dindex=0
for line in $tarray; do
if [[ "$line" = "enabled=1" ]]; then
enabled_yum_repos=($enabled_yum_repos $trepo)
elif [[ "$line" = "enabled=0" ]]; then
disabled_yum_repos=($disabled_yum_repos $trepo)
elif [[ "$line" != "main" ]]; then
trepo=$line
fi
done
}
(( $+functions[_yum_disabled_repos_list] )) || _yum_disabled_repos_list()
{
yum_repos
compadd "$@" -a -- disabled_yum_repos
}
(( $+functions[_yum_enabled_repos_list] )) || _yum_enabled_repos_list()
{
yum_repos
compadd "$@" -a -- enabled_yum_repos
}
# Completion function for erase|remove
(( $+functions[_yum_erase] )) || _yum_erase()
{
@ -257,7 +282,7 @@ _yum_caching_policy()
_yumrepomds=( /var/cache/yum/**/repomd.xml )
if (( $#__yumrepomds )); then
if (( $#_yumrepomds )); then
for repo in $_yumrepomds; do
[[ "$repo" -nt "$1" ]] && return 0
done