diff options
author | Sebastian Pipping <sebastian@pipping.org> | 2010-02-26 22:10:43 +0100 |
---|---|---|
committer | Zac Medico <zmedico@gmail.com> | 2010-03-23 18:44:13 -0700 |
commit | 4866b8f1bc4cc4c089916ea5cd4b6d44691e8c6c (patch) | |
tree | c3260af500e6c30f71e0c8a660975888843d6375 | |
parent | f52e83b0982c9c18d96757ab55109d43a9873b3f (diff) | |
download | portage-4866b8f1bc4cc4c089916ea5cd4b6d44691e8c6c.tar.gz portage-4866b8f1bc4cc4c089916ea5cd4b6d44691e8c6c.tar.bz2 portage-4866b8f1bc4cc4c089916ea5cd4b6d44691e8c6c.zip |
Prepare further checks on metadata.xml
-rwxr-xr-x | bin/repoman | 15 | ||||
-rw-r--r-- | pym/repoman/utilities.py | 4 |
2 files changed, 14 insertions, 5 deletions
diff --git a/bin/repoman b/bin/repoman index c96b18408..61a2c3359 100755 --- a/bin/repoman +++ b/bin/repoman @@ -1296,16 +1296,25 @@ for x in scanlist: else: metadata_bad = False - # load USE flags from metadata.xml + # read metadata.xml into memory try: f = open(os.path.join(checkdir, "metadata.xml")) - utilities.parse_metadata_use(f, muselist) + _metadata_xml = f.read() f.close() - except (EnvironmentError, ParseError) as e: + except (EnvironmentError, ) as e: metadata_bad = True stats["metadata.bad"] += 1 fails["metadata.bad"].append("%s/metadata.xml: %s" % (x, e)) del e + else: + # load USE flags from metadata.xml + try: + utilities.parse_metadata_use(_metadata_xml, muselist) + except (EnvironmentError, ParseError) as e: + metadata_bad = True + stats["metadata.bad"] += 1 + fails["metadata.bad"].append("%s/metadata.xml: %s" % (x, e)) + del e #Only carry out if in package directory or check forced if xmllint_capable and not metadata_bad: diff --git a/pym/repoman/utilities.py b/pym/repoman/utilities.py index 8a2c0f0c6..d30552ed4 100644 --- a/pym/repoman/utilities.py +++ b/pym/repoman/utilities.py @@ -112,14 +112,14 @@ def have_profile_dir(path, maxdepth=3, filename="profiles.desc"): path = normalize_path(path + "/..") maxdepth -= 1 -def parse_metadata_use(mylines, uselist=None): +def parse_metadata_use(metadata_xml_content, uselist=None): """ Records are wrapped in XML as per GLEP 56 returns a dict of the form a list of flags""" if uselist is None: uselist = [] try: - metadatadom = minidom.parse(mylines) + metadatadom = minidom.parseString(metadata_xml_content) except ExpatError as e: raise exception.ParseError("metadata.xml: %s" % (e,)) |