From 9ed7bf27424890320b933e5d913804738d358bf1 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 1 Jun 2012 14:30:37 -0700 Subject: grablines: raise PermissionDenied if appropriate --- pym/portage/util/__init__.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'pym/portage/util/__init__.py') 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): -- cgit v1.2.3-1-g7c22