1 |
commit: 9ed7bf27424890320b933e5d913804738d358bf1 |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Fri Jun 1 21:30:37 2012 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri Jun 1 21:30:37 2012 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=9ed7bf27 |
7 |
|
8 |
grablines: raise PermissionDenied if appropriate |
9 |
|
10 |
--- |
11 |
pym/portage/util/__init__.py | 15 +++++++++++++-- |
12 |
1 files changed, 13 insertions(+), 2 deletions(-) |
13 |
|
14 |
diff --git a/pym/portage/util/__init__.py b/pym/portage/util/__init__.py |
15 |
index 2e0a32b..4ffd599 100644 |
16 |
--- a/pym/portage/util/__init__.py |
17 |
+++ b/pym/portage/util/__init__.py |
18 |
@@ -469,7 +469,15 @@ def grablines(myfilename, recursive=0, remember_source_file=False): |
19 |
if recursive and os.path.isdir(myfilename): |
20 |
if os.path.basename(myfilename) in _ignorecvs_dirs: |
21 |
return mylines |
22 |
- dirlist = os.listdir(myfilename) |
23 |
+ try: |
24 |
+ dirlist = os.listdir(myfilename) |
25 |
+ except OSError as e: |
26 |
+ if e.errno == PermissionDenied.errno: |
27 |
+ raise PermissionDenied(myfilename) |
28 |
+ elif e.errno in (errno.ENOENT, errno.ESTALE): |
29 |
+ return mylines |
30 |
+ else: |
31 |
+ raise |
32 |
dirlist.sort() |
33 |
for f in dirlist: |
34 |
if not f.startswith(".") and not f.endswith("~"): |
35 |
@@ -488,7 +496,10 @@ def grablines(myfilename, recursive=0, remember_source_file=False): |
36 |
except IOError as e: |
37 |
if e.errno == PermissionDenied.errno: |
38 |
raise PermissionDenied(myfilename) |
39 |
- pass |
40 |
+ elif e.errno in (errno.ENOENT, errno.ESTALE): |
41 |
+ pass |
42 |
+ else: |
43 |
+ raise |
44 |
return mylines |
45 |
|
46 |
def writedict(mydict,myfilename,writekey=True): |