summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Pipping <sebastian@pipping.org>2010-02-26 22:10:43 +0100
committerZac Medico <zmedico@gmail.com>2010-03-23 18:44:13 -0700
commit4866b8f1bc4cc4c089916ea5cd4b6d44691e8c6c (patch)
treec3260af500e6c30f71e0c8a660975888843d6375
parentf52e83b0982c9c18d96757ab55109d43a9873b3f (diff)
downloadportage-4866b8f1bc4cc4c089916ea5cd4b6d44691e8c6c.tar.gz
portage-4866b8f1bc4cc4c089916ea5cd4b6d44691e8c6c.tar.bz2
portage-4866b8f1bc4cc4c089916ea5cd4b6d44691e8c6c.zip
Prepare further checks on metadata.xml
-rwxr-xr-xbin/repoman15
-rw-r--r--pym/repoman/utilities.py4
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,))