From 7c11c8ec5f568984ee720fc677959f9d2c9dfd32 Mon Sep 17 00:00:00 2001 From: Sebastian Pipping Date: Sat, 27 Feb 2010 03:37:45 +0100 Subject: Add check of herds in metadata.xml --- bin/repoman | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'bin/repoman') diff --git a/bin/repoman b/bin/repoman index 61a2c3359..144c19351 100755 --- a/bin/repoman +++ b/bin/repoman @@ -53,11 +53,13 @@ from portage import StringIO try: from repoman.checks import run_checks from repoman import utilities + from repoman.herdbase import make_herd_base except ImportError: from os import path as osp sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), 'pym')) from repoman.checks import run_checks from repoman import utilities + from repoman.herdbase import make_herd_base from _emerge.Package import Package from _emerge.RootConfig import RootConfig @@ -981,6 +983,11 @@ check_ebuild_notadded = not \ # Build a regex from thirdpartymirrors for the SRC_URI.mirror check. thirdpartymirrors = portage.flatten(list(repoman_settings.thirdpartymirrors().values())) +try: + herd_base = make_herd_base(os.path.join(repoman_settings["PORTDIR"], "metadata/herds.xml")) +except (EnvironmentError, ParseError) as e: + err(str(e)) + for x in scanlist: #ebuilds and digests added to cvs respectively. logging.info("checking package %s" % x) @@ -1316,6 +1323,15 @@ for x in scanlist: fails["metadata.bad"].append("%s/metadata.xml: %s" % (x, e)) del e + # Run other metadata.xml checkers + try: + utilities.check_metadata(_metadata_xml, herd_base) + except (EnvironmentError, ParseError, utilities.UnknownHerdsError) 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: # xmlint can produce garbage output even on success, so only dump -- cgit v1.2.3-1-g7c22