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()
for flag in flags:
pkg_flag = flag.get("name")
- pkg_flag_value = whitespace_re.sub(' ', flag.text).strip()
if pkg_flag is None:
raise exception.ParseError("missing 'name' attribute for 'flag' tag")
+ if flag.text is None:
+ raise exception.ParseError("missing USE description with " + \
+ "the 'flag' tag (name=%s)" % pkg_flag)
+ pkg_flag_value = whitespace_re.sub(' ', flag.text).strip()
if not pkg_flag_value:
- raise exception.ParseError("missing USE description with the 'flag' tag")
+ raise exception.ParseError("missing USE description with " + \
+ "the 'flag' tag (name=%s)" % pkg_flag)
uselist[pkg_flag] = pkg_flag_value
return uselist