summaryrefslogtreecommitdiffstats
path: root/pym/portage/util/__init__.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-06-01 14:30:37 -0700
committerZac Medico <zmedico@gentoo.org>2012-06-01 14:30:37 -0700
commit9ed7bf27424890320b933e5d913804738d358bf1 (patch)
tree3b1fe6c36ecc075677e00dbbac8c8b8dc46b729b /pym/portage/util/__init__.py
parent1ecb54ad4392473130f6ffdab1ba6e7105031c76 (diff)
downloadportage-9ed7bf27424890320b933e5d913804738d358bf1.tar.gz
portage-9ed7bf27424890320b933e5d913804738d358bf1.tar.bz2
portage-9ed7bf27424890320b933e5d913804738d358bf1.zip
grablines: raise PermissionDenied if appropriate
Diffstat (limited to 'pym/portage/util/__init__.py')
-rw-r--r--pym/portage/util/__init__.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/pym/portage/util/__init__.py b/pym/portage/util/__init__.py
index 2e0a32bb0..4ffd599b8 100644
--- a/pym/portage/util/__init__.py
+++ b/pym/portage/util/__init__.py
@@ -469,7 +469,15 @@ def grablines(myfilename, recursive=0, remember_source_file=False):
if recursive and os.path.isdir(myfilename):
if os.path.basename(myfilename) in _ignorecvs_dirs:
return mylines
- dirlist = os.listdir(myfilename)
+ try:
+ dirlist = os.listdir(myfilename)
+ except OSError as e:
+ if e.errno == PermissionDenied.errno:
+ raise PermissionDenied(myfilename)
+ elif e.errno in (errno.ENOENT, errno.ESTALE):
+ return mylines
+ else:
+ raise
dirlist.sort()
for f in dirlist:
if not f.startswith(".") and not f.endswith("~"):
@@ -488,7 +496,10 @@ def grablines(myfilename, recursive=0, remember_source_file=False):
except IOError as e:
if e.errno == PermissionDenied.errno:
raise PermissionDenied(myfilename)
- pass
+ elif e.errno in (errno.ENOENT, errno.ESTALE):
+ pass
+ else:
+ raise
return mylines
def writedict(mydict,myfilename,writekey=True):