1 |
Author: zmedico |
2 |
Date: 2009-04-30 06:57:43 +0000 (Thu, 30 Apr 2009) |
3 |
New Revision: 13459 |
4 |
|
5 |
Modified: |
6 |
main/branches/2.1.6/bin/egencache |
7 |
Log: |
8 |
Always generate an error if the target cache contains an apparently invalid |
9 |
cpv. (trunk r13288) |
10 |
|
11 |
Modified: main/branches/2.1.6/bin/egencache |
12 |
=================================================================== |
13 |
--- main/branches/2.1.6/bin/egencache 2009-04-30 06:57:26 UTC (rev 13458) |
14 |
+++ main/branches/2.1.6/bin/egencache 2009-04-30 06:57:43 UTC (rev 13459) |
15 |
@@ -26,6 +26,7 @@ |
16 |
import _emerge |
17 |
from portage.cache.cache_errors import CacheError, StatCollision |
18 |
from portage.util import writemsg_level |
19 |
+from portage import cpv_getkey |
20 |
|
21 |
def parse_args(args): |
22 |
usage = "egencache [options] --update [atom] ..." |
23 |
@@ -133,7 +134,7 @@ |
24 |
|
25 |
def _metadata_callback(self, cpv, ebuild_path, repo_path, metadata): |
26 |
self._existing_nodes.add(cpv) |
27 |
- self._cp_missing.discard(portage.cpv_getkey(cpv)) |
28 |
+ self._cp_missing.discard(cpv_getkey(cpv)) |
29 |
if metadata is not None: |
30 |
if metadata.get('EAPI') == '0': |
31 |
del metadata['EAPI'] |
32 |
@@ -179,10 +180,18 @@ |
33 |
cp_missing = self._cp_missing |
34 |
|
35 |
trg_cache = self._trg_cache |
36 |
- dead_nodes = None |
37 |
+ dead_nodes = set() |
38 |
if self._global_cleanse: |
39 |
try: |
40 |
- dead_nodes = set(trg_cache.iterkeys()) |
41 |
+ for cpv in trg_cache.iterkeys(): |
42 |
+ cp = cpv_getkey(cpv) |
43 |
+ if cp is None: |
44 |
+ self.returncode |= 1 |
45 |
+ writemsg_level( |
46 |
+ "Unable to parse cp for '%s'\n" % (cpv,), |
47 |
+ level=logging.ERROR, noiselevel=-1) |
48 |
+ else: |
49 |
+ dead_nodes.add(cpv) |
50 |
except CacheError, ce: |
51 |
self.returncode |= 1 |
52 |
writemsg_level( |
53 |
@@ -193,12 +202,11 @@ |
54 |
|
55 |
else: |
56 |
cp_set = self._cp_set |
57 |
- cpv_getkey = portage.cpv_getkey |
58 |
- dead_nodes = set() |
59 |
try: |
60 |
for cpv in trg_cache.iterkeys(): |
61 |
cp = cpv_getkey(cpv) |
62 |
if cp is None: |
63 |
+ self.returncode |= 1 |
64 |
writemsg_level( |
65 |
"Unable to parse cp for '%s'\n" % (cpv,), |
66 |
level=logging.ERROR, noiselevel=-1) |