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)

Reply via email to