diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-06-20 05:45:31 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-06-20 05:45:31 +0000 |
commit | 18792bbde65228ca97fc15b5686d6175b806e925 (patch) | |
tree | 83720b967389e536607636b579aa1a83741f34e1 /pym | |
parent | 9366887ded3808e77843ed64682b33b17242bf0e (diff) | |
download | portage-18792bbde65228ca97fc15b5686d6175b806e925.tar.gz portage-18792bbde65228ca97fc15b5686d6175b806e925.tar.bz2 portage-18792bbde65228ca97fc15b5686d6175b806e925.zip |
For bug #180165, make portageq print a "Permission denied" error when appropriate and make has_version die if portageq has an unexpected exit code. (trunk r6880:6882)
svn path=/main/branches/2.1.2/; revision=6885
Diffstat (limited to 'pym')
-rw-r--r-- | pym/portage.py | 11 | ||||
-rw-r--r-- | pym/portage_exception.py | 1 |
2 files changed, 9 insertions, 3 deletions
diff --git a/pym/portage.py b/pym/portage.py index ea3fba2fa..054435bff 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -185,7 +185,14 @@ def cacheddir(my_original_path, ignorecvs, ignorelist, EmptyOnError, followSymli mtime = pathstat[stat.ST_MTIME] else: raise portage_exception.DirectoryNotFound(mypath) - except (IOError,OSError,portage_exception.PortageException): + except EnvironmentError, e: + if e.errno == portage_exception.PermissionDenied.errno: + raise portage_exception.PermissionDenied(mypath) + del e + if EmptyOnError: + return [], [] + return None, None + except portage_exception.PortageException: if EmptyOnError: return [], [] return None, None @@ -199,8 +206,6 @@ def cacheddir(my_original_path, ignorecvs, ignorelist, EmptyOnError, followSymli if e.errno != errno.EACCES: raise del e - if EmptyOnError: - return [], [] raise portage_exception.PermissionDenied(mypath) ftype = [] for x in list: diff --git a/pym/portage_exception.py b/pym/portage_exception.py index 4be72cf96..3d590a563 100644 --- a/pym/portage_exception.py +++ b/pym/portage_exception.py @@ -53,6 +53,7 @@ class OperationNotPermitted(PortageException): """An operation was not permitted operating system""" class PermissionDenied(PortageException): + from errno import EACCES as errno """Permission denied""" class ReadOnlyFileSystem(PortageException): |