diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-06-01 14:30:37 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-06-01 14:30:37 -0700 |
commit | 9ed7bf27424890320b933e5d913804738d358bf1 (patch) | |
tree | 3b1fe6c36ecc075677e00dbbac8c8b8dc46b729b | |
parent | 1ecb54ad4392473130f6ffdab1ba6e7105031c76 (diff) | |
download | portage-9ed7bf27424890320b933e5d913804738d358bf1.tar.gz portage-9ed7bf27424890320b933e5d913804738d358bf1.tar.bz2 portage-9ed7bf27424890320b933e5d913804738d358bf1.zip |
grablines: raise PermissionDenied if appropriate
-rw-r--r-- | pym/portage/util/__init__.py | 15 |
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): |