commit:     a32312a914dc67d4122332f7e990cbb2a43556b4
Author:     Tim Harder <radhermit <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 20 23:13:37 2014 +0000
Commit:     Tim Harder <radhermit <AT> gentoo <DOT> org>
CommitDate: Sat Dec 20 23:18:00 2014 +0000
URL:        
http://sources.gentoo.org/gitweb/?p=proj/zsh-completion.git;a=commit;h=a32312a9

_gentoo_packages: drop PORTDIR and PORTDIR_OVERLAY usage

Both variables are slowly being deprecated as we move towards a more
multi-repo friendly future.

Also, this does various other variable naming and scope cleanup.

---
 src/_gentoo_packages | 92 ++++++++++++++++++++++++++++------------------------
 src/_portage_utils   |  6 ++--
 2 files changed, 51 insertions(+), 47 deletions(-)

diff --git a/src/_gentoo_packages b/src/_gentoo_packages
index f15487c..37539c8 100644
--- a/src/_gentoo_packages
+++ b/src/_gentoo_packages
@@ -65,17 +65,20 @@ _gentoo_packages_update_installed_sets() {
 }
 
 _gentoo_packages_update_available_sets() {
-  trees=($(_gentoo_repos -o) /etc/portage /usr/share/portage/config)
-  for PORTDIR in ${(@)trees}; do
-    if [[ -d ${PORTDIR} ]]; then
-      setsdir="$(_parsesetsconf ${PORTDIR})"
-      [[ ! -z "${setsdir}" ]] && setspath="${PORTDIR}/${setsdir}" || 
setspath="${PORTDIR}/sets"
-      if [[ -d "${setspath}" ]]; then
-        setsfiles=(${setspath}/*~*.conf(N))
-        for set in ${setsfiles[@]}; do
+  local dirs dir sets_dir set sets sets_path sets_files
+
+  dirs=($(_gentoo_repos -o) /etc/portage /usr/share/portage/config)
+
+  for dir in ${(@)dirs}; do
+    if [[ -d ${dir} ]]; then
+      sets_dir="$(_parsesetsconf ${dir})"
+      [[ ! -z "${sets_dir}" ]] && sets_path="${dir}/${sets_dir}" || 
sets_path="${dir}/sets"
+      if [[ -d "${sets_path}" ]]; then
+        sets_files=(${sets_path}/*~*.conf(N))
+        for set in ${sets_files[@]}; do
           sets+=(${set}(:t))
         done
-        sets+=($(_parsesetsconf ${PORTDIR} sets))
+        sets+=($(_parsesetsconf ${dir} sets))
       fi
     fi
   done
@@ -86,16 +89,13 @@ _gentoo_packages_update_available_sets() {
 
 # Completion function to show useflags.
 _gentoo_packages_update_useflag(){
-  local flags trees
+  local flags repo
 
-  flags=()
-  trees=($(_gentoo_repos))
-
-  for PORTDIR in ${trees[@]}; do
-     [[ -r ${PORTDIR}/profiles/use.desc ]] &&
-    flags+=(${${(M)${(f)"$(<$PORTDIR/profiles/use.desc)"}:#* - *}%% - *})
-     [[ -r ${PORTDIR}/profiles/use.local.desc ]] &&
-    flags+=(${${${(M)${(f)"$(<$PORTDIR/profiles/use.local.desc)"}#* - *}%% - 
*}#*:})
+  for repo in $(_gentoo_repos); do
+    [[ -r ${repo}/profiles/use.desc ]] &&
+      flags+=(${${(M)${(f)"$(<${repo}/profiles/use.desc)"}:#* - *}%% - *})
+    [[ -r ${repo}/profiles/use.local.desc ]] &&
+      flags+=(${${${(M)${(f)"$(<${repo}/profiles/use.local.desc)"}#* - *}%% - 
*}#*:})
   done
 
   compadd $flags
@@ -111,16 +111,17 @@ _gentoo_packages_update_active_useflag(){
   flags=(${${${=USE}%-*}%\\*})
   compadd $flags
 }
+
 _gentoo_packages_update_category(){
-  local trees category
+  local repos category
 
-  trees=($(_gentoo_repos))
-  category=( $trees/*-*(/:t) )
+  repos=($(_gentoo_repos))
+  category=( $repos/*-*(/:t) )
   _wanted cat_packages expl 'category' compadd "$@" $category
 }
 
 _gentoo_packages_update_installed(){
-   local installed_dir installed_portage installed_list expl
+   local installed_dir installed_portage installed_pkgname installed_list
    installed_dir="/var/db/pkg"
    installed_portage=($installed_dir/*-*/*)
 
@@ -132,7 +133,7 @@ _gentoo_packages_update_installed(){
 }
 
 _gentoo_packages_update_installed_versions(){
-  local installed_list installed_portage expl
+  local installed_list installed_portage
 
   installed_portage=(/var/db/pkg/*-*/*)
   _wanted packages expl 'package' compadd "$@" ${installed_portage:t}
@@ -142,21 +143,21 @@ _gentoo_packages_update_installed_versions(){
 }
 
 _gentoo_packages_update_available_pkgnames_only(){
-  local trees packages
+  local repos packages
 
-  trees=($(_gentoo_repos))
+  repos=($(_gentoo_repos))
 
-  packages=($trees/*-*/*(:t))
+  packages=($repos/*-*/*(:t))
   _wanted packages expl 'package' compadd - "${(@)packages}"
 }
 
 _gentoo_packages_update_available(){
-  local trees category packages pkg expl
+  local repos category packages pkg expl
 
-  trees=($(_gentoo_repos))
-  category=($trees/*-*(/:t))
+  repos=($(_gentoo_repos))
+  category=($repos/*-*(/:t))
 
-  packages=($trees/*-*/*(:t))
+  packages=($repos/*-*/*(:t))
   _wanted packages expl 'package' compadd - "${(@)packages}"
 
   # Complete cat/pkg. _multi_parts is much to slow for such a large task,
@@ -167,38 +168,40 @@ _gentoo_packages_update_available(){
     _wanted cat_packages expl 'category/package' compadd -S '/' $category
   else
     compset -P '*/'
-    pkg=($trees/$IPREFIX/*(:t))
+    pkg=($repos/$IPREFIX/*(:t))
     _wanted cat_packages expl 'category/package' compadd $pkg
   fi
 }
 
 _gentoo_packages_update_available_versions(){
-  local var overlay_ebuilds portage_ebuilds expl trees category
+  local main_repo overlays overlay_ebuilds gentoo_ebuilds repos category pkg
 
-  PORTDIR=$(_gentoo_repos -m)
-  PORTDIR_OVERLAY=$(_gentoo_repos -o)
+  main_repo=$(_gentoo_repos -m)
+  overlays=$(_gentoo_repos -o)
 
-  trees=($PORTDIR $=PORTDIR_OVERLAY)
-  category=($trees/*-*(/:t))
+  repos=($main_repo $=overlays)
+  category=($repos/*-*(/:t))
   typeset -U category
 
   if [[ $#PREFIX -ge 1 && -z $words[(r)(--inject|-i)] ]]; then
-    overlay_ebuilds=($=PORTDIR_OVERLAY/*-*/${PREFIX%%-[0-9]#*}*/*.ebuild(:t:r) 
)
-    portage_ebuilds=($PORTDIR/metadata/cache/*-*/${PREFIX%%-[0-9]#*}*(:t))
-    _wanted packages expl 'package' compadd $portage_ebuilds $overlay_ebuilds
+    overlay_ebuilds=($=overlays/*-*/${PREFIX%%-[0-9]#*}*/*.ebuild(:t:r) )
+    gentoo_ebuilds=($main_repo/metadata/cache/*-*/${PREFIX%%-[0-9]#*}*(:t))
+    _wanted packages expl 'package' compadd $gentoo_ebuilds $overlay_ebuilds
   fi
-  pkg=( $trees/${PREFIX%%/*}/*/*.ebuild(:t:r) )
+  pkg=( $repos/${PREFIX%%/*}/*/*.ebuild(:t:r) )
   _wanted cat_packages expl 'category/package' _sep_parts category / pkg
 }
 
 #Function to show tbz2 files available
 _gentoo_packages_update_binary() {
+  local PKGDIR
+
   [[ -z $PKGDIR && -r /etc/portage/make.conf ]] &&
-    local PKGDIR="$(. /etc/portage/make.conf 2>/dev/null; echo $PKGDIR)"
+    PKGDIR="$(. /etc/portage/make.conf 2>/dev/null; echo $PKGDIR)"
   [[ -z $PKGDIR && -r /etc/make.conf ]] &&
-    local PKGDIR="$(. /etc/make.conf 2>/dev/null; echo $PKGDIR)"
+    PKGDIR="$(. /etc/make.conf 2>/dev/null; echo $PKGDIR)"
   [[ -z $PKGDIR && -r /usr/share/portage/config/make.globals ]] &&
-    local PKGDIR="$(. /usr/share/portage/config/make.globals 2>/dev/null; echo 
$PKGDIR)"
+    PKGDIR="$(. /usr/share/portage/config/make.globals 2>/dev/null; echo 
$PKGDIR)"
 
   # this doesn't take care of ${PORTAGE_BINHOST}. If Gentoo official
   # binary mirror will be available we should rewrite it accordingly.
@@ -207,6 +210,7 @@ _gentoo_packages_update_binary() {
 
 _gentoo_packages () {
   local command="$argv[$#]" expl cachevar pkgset update_policy
+
   zstyle -s ":completion:*:*:$service:*" cache-policy update_policy
   if [[ -z "$update_policy" ]]; then
     zstyle ":completion:*:*:$service:*" cache-policy _gentoo_cache_policy
@@ -223,6 +227,8 @@ _gentoo_packages () {
 }
 
 _gentoo_cache_policy () {
+  local oldp
+
   # rebuild if cache is more than a week old
   oldp=( "$1"(mw+1) )
     (( $#oldp )) && return 0

diff --git a/src/_portage_utils b/src/_portage_utils
index 7fdb828..cab73f9 100644
--- a/src/_portage_utils
+++ b/src/_portage_utils
@@ -2,9 +2,7 @@
 
 # portage-utils-0.53
 
-local common_args PORTDIR
-
-PORTDIR="$(_gentoo_repos -m)"
+local common_args
 
 common_args=(
   '--root[Set the ROOT env var]:root directory:_files -/' \
@@ -25,7 +23,7 @@ case $service in
     local -a arches allarches
 
     show_archs(){
-      arches=(${(f)"$(<$PORTDIR/profiles/arch.list)"})
+      arches=(${(f)"$(<$(_gentoo_repos -m)/profiles/arch.list)"})
       for arch in $arches; do
         [[ $arch =~ '^[^#]' ]] && allarches+=( $arch )
       done

Reply via email to