summaryrefslogtreecommitdiffstats
path: root/bin/egencache
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-08-26 12:46:35 -0700
committerZac Medico <zmedico@gentoo.org>2010-08-26 12:46:35 -0700
commit9d71e68de000d94ac627e40a7e53e77d6e53ac9a (patch)
treef1138375a8ed997489e2ebbf12665f5d4eebb832 /bin/egencache
parent2efd2a76cc9a954e43651d616c273c573e5a95ac (diff)
downloadportage-9d71e68de000d94ac627e40a7e53e77d6e53ac9a.tar.gz
portage-9d71e68de000d94ac627e40a7e53e77d6e53ac9a.tar.bz2
portage-9d71e68de000d94ac627e40a7e53e77d6e53ac9a.zip
Fix up error handling for egencache --update-use-local-desc.
Diffstat (limited to 'bin/egencache')
-rwxr-xr-xbin/egencache13
1 files changed, 10 insertions, 3 deletions
diff --git a/bin/egencache b/bin/egencache
index 4bfb5be8f..515c6566d 100755
--- a/bin/egencache
+++ b/bin/egencache
@@ -347,9 +347,16 @@ class GenUseLocalDesc(object):
level=logging.ERROR, noiselevel=-1)
self.returncode |= 1
else:
- usedict = parse_metadata_use(metadata)
- for flag in sorted(usedict.keys()):
- output.write('%s:%s - %s\n' % (cp, flag, usedict[flag]))
+ try:
+ usedict = parse_metadata_use(metadata)
+ except portage.exception.ParseError as e:
+ writemsg_level(
+ "ERROR: failed parsing %s/metadata.xml: %s\n" % (cp, e),
+ level=logging.ERROR, noiselevel=-1)
+ self.returncode |= 1
+ else:
+ for flag in sorted(usedict.keys()):
+ output.write('%s:%s - %s\n' % (cp, flag, usedict[flag]))
output.close()