From c74469a267a904114dcef3e5bb91d216aa919e82 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 26 Sep 2007 03:57:09 +0000 Subject: Bug #192298 - Handle PermissionDenied error in cache.update_eclasses(). (trunk r7769) svn path=/main/branches/2.1.2/; revision=7809 --- pym/eclass_cache.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'pym/eclass_cache.py') diff --git a/pym/eclass_cache.py b/pym/eclass_cache.py index 91b98fec5..d2ff47f97 100644 --- a/pym/eclass_cache.py +++ b/pym/eclass_cache.py @@ -4,8 +4,9 @@ # $Id$ from portage_util import normalize_path, writemsg -import os, sys +import errno, os, sys from portage_data import portage_gid +from portage_exception import PermissionDenied class cache: """ @@ -44,7 +45,19 @@ class cache: for x in [normalize_path(os.path.join(y,"eclass")) for y in self.porttrees]: if not os.path.isdir(x): continue - for y in [y for y in os.listdir(x) if y.endswith(".eclass")]: + eclass_filenames = [] + try: + for y in os.listdir(x): + if y.endswith(".eclass"): + eclass_filenames.append(y) + except OSError, e: + if e.errno == errno.ENOENT: + del e + continue + elif e.errno == PermissionDenied.errno: + raise PermissionDenied(x) + raise + for y in eclass_filenames: try: mtime = long(os.stat(os.path.join(x, y)).st_mtime) except OSError: -- cgit v1.2.3-1-g7c22