commit: 750404bb3e8ab5bccdf9d653e8587610fd034e89
Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
AuthorDate: Tue May 27 07:13:32 2014 +0000
Commit: Brian Dolbec <brian.dolbec <AT> gmail <DOT> com>
CommitDate: Tue May 27 07:13:32 2014 +0000
URL:
http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=750404bb
repoman/main.py: Break out a new ebuild check, ThirdPartyMirrors
Consolodate the code from 2 locations into one class.
---
pym/repoman/checks/ebuilds/thirdpartymirrors.py | 40 +++++++++++++++++++++++++
pym/repoman/main.py | 32 +++++---------------
2 files changed, 47 insertions(+), 25 deletions(-)
diff --git a/pym/repoman/checks/ebuilds/thirdpartymirrors.py
b/pym/repoman/checks/ebuilds/thirdpartymirrors.py
new file mode 100644
index 0000000..976a62c
--- /dev/null
+++ b/pym/repoman/checks/ebuilds/thirdpartymirrors.py
@@ -0,0 +1,40 @@
+
+import portage
+
+
+class ThirdPartyMirrors(object):
+
+ def __init__(self, repoman_settings):
+ # Build a regex from thirdpartymirrors for the SRC_URI.mirror
check.
+ self.thirdpartymirrors = {}
+ for k, v in repoman_settings.thirdpartymirrors().items():
+ for v in v:
+ if not v.endswith("/"):
+ v += "/"
+ self.thirdpartymirrors[v] = k
+ self.stats = 0
+ self.fails = []
+
+
+ def check(self, myaux, relative_path):
+ # reset our stats in case this is a repeat run
+ self.stats = 0
+ self.fails = []
+ # Check that URIs don't reference a server from
thirdpartymirrors.
+ for uri in portage.dep.use_reduce(
+ myaux["SRC_URI"], matchall=True, is_src_uri=True,
+ eapi=myaux["EAPI"], flat=True):
+ contains_mirror = False
+ for mirror, mirror_alias in
self.thirdpartymirrors.items():
+ if uri.startswith(mirror):
+ contains_mirror = True
+ break
+ if not contains_mirror:
+ continue
+
+ new_uri = "mirror://%s/%s" % (mirror_alias,
uri[len(mirror):])
+ self.stats += 1
+ self.fails.append(
+ "%s: '%s' found in thirdpartymirrors, use '%s'"
%
+ (relative_path, mirror, new_uri))
+ return
diff --git a/pym/repoman/main.py b/pym/repoman/main.py
index 49ad79d..158323e 100755
--- a/pym/repoman/main.py
+++ b/pym/repoman/main.py
@@ -65,6 +65,7 @@ from portage.eapi import eapi_has_iuse_defaults,
eapi_has_required_use
from repoman.argparser import parse_args
from repoman.checks.ebuilds.checks import run_checks, checks_init
+from repoman.checks.ebuilds.thirdpartymirrors import ThirdPartyMirrors
from repoman.checks.herds.herdbase import make_herd_base
from repoman.errors import err
from repoman.metadata import (metadata_xml_encoding, metadata_doctype_name,
@@ -303,14 +304,6 @@ if options.include_arches:
check_ebuild_notadded = not \
(vcs_settings.vcs == "svn" and repolevel < 3 and options.mode !=
"commit")
-# Build a regex from thirdpartymirrors for the SRC_URI.mirror check.
-thirdpartymirrors = {}
-for k, v in repoman_settings.thirdpartymirrors().items():
- for v in v:
- if not v.endswith("/"):
- v += "/"
- thirdpartymirrors[v] = k
-
try:
herd_base = make_herd_base(
os.path.join(repoman_settings["PORTDIR"], "metadata/herds.xml"))
@@ -887,23 +880,12 @@ for x in effective_scanlist:
(relative_path, k, m.start() + 1))
if not src_uri_error:
- # Check that URIs don't reference a server from
thirdpartymirrors.
- for uri in portage.dep.use_reduce(
- myaux["SRC_URI"], matchall=True,
is_src_uri=True, eapi=eapi, flat=True):
- contains_mirror = False
- for mirror, mirror_alias in
thirdpartymirrors.items():
- if uri.startswith(mirror):
- contains_mirror = True
- break
- if not contains_mirror:
- continue
-
- new_uri = "mirror://%s/%s" % (mirror_alias,
uri[len(mirror):])
- stats["SRC_URI.mirror"] += 1
- fails["SRC_URI.mirror"].append(
- "%s: '%s' found in thirdpartymirrors,
use '%s'" %
- (relative_path, mirror, new_uri))
-
+ #######################
+ thirdparty = ThirdPartyMirrors(repoman_settings)
+ thirdparty.check(myaux, relative_path)
+ stats["SRC_URI.mirror"] = thirdparty.stats
+ fails["SRC_URI.mirror"] = thirdparty.fails
+ #######################
if myaux.get("PROVIDE"):
stats["virtual.oldstyle"] += 1
fails["virtual.oldstyle"].append(relative_path)