summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'bin/repoman')
-rwxr-xr-xbin/repoman16
1 files changed, 16 insertions, 0 deletions
diff --git a/bin/repoman b/bin/repoman
index 61a2c335..144c1935 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