commit:     71ed484f67919a13f97bfa4e0e9a251119df0c99
Author:     Brian Dolbec <dolsen <AT> gentoo <DOT> org>
AuthorDate: Mon Jun  2 06:43:19 2014 +0000
Commit:     Brian Dolbec <brian.dolbec <AT> gmail <DOT> com>
CommitDate: Mon Jun  2 06:43:19 2014 +0000
URL:        
http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=71ed484f

repoman/main.py: Split out some small ebuild checks functions

Create new checks/ebuilds/misc.py file
Add bad_split_check().
Add pkg_invalid().

---
 pym/repoman/checks/ebuilds/misc.py | 54 ++++++++++++++++++++++++++++++++++++++
 pym/repoman/main.py                | 29 ++++----------------
 2 files changed, 59 insertions(+), 24 deletions(-)

diff --git a/pym/repoman/checks/ebuilds/misc.py 
b/pym/repoman/checks/ebuilds/misc.py
new file mode 100644
index 0000000..c1edd2c
--- /dev/null
+++ b/pym/repoman/checks/ebuilds/misc.py
@@ -0,0 +1,54 @@
+
+'''repoman/checks/ebuilds/misc.py
+Miscelaneous ebuild check functions'''
+
+import re
+
+import portage
+
+
+pv_toolong_re = re.compile(r'[0-9]{19,}')
+
+
+def bad_split_check(xpkg, y_ebuild, pkgdir, qatracker):
+       '''Checks for bad category/package splits.
+
+       @param xpkg: the pacakge being checked
+       @param y_ebuild: string of the ebuild name being tested
+       @param pkgdir: string: path
+       @param qatracker: QATracker instance
+       '''
+       myesplit = portage.pkgsplit(y_ebuild)
+
+       is_bad_split = myesplit is None or myesplit[0] != xpkg.split("/")[-1]
+
+       if is_bad_split:
+               is_pv_toolong = pv_toolong_re.search(myesplit[1])
+               is_pv_toolong2 = pv_toolong_re.search(myesplit[2])
+
+               if is_pv_toolong or is_pv_toolong2:
+                       qatracker.add_error("ebuild.invalidname",
+                               xpkg + "/" + y_ebuild + ".ebuild")
+                       return True
+       elif myesplit[0] != pkgdir:
+               print(pkgdir, myesplit[0])
+               qatracker.add_error("ebuild.namenomatch",
+                       xpkg + "/" + y_ebuild + ".ebuild")
+               return True
+       return False
+
+
+def pkg_invalid(pkg, qatracker):
+       '''Checks for invalid packages
+
+       @param pkg: _emerge.Package instance
+       @param qatracker: QATracker instance
+       @return boolean:
+       '''
+       if pkg.invalid:
+               for k, msgs in pkg.invalid.items():
+                       for msg in msgs:
+                               qatracker.add_error(k,
+                                       "%s: %s" % (ebuild.relative_path, msg))
+               return True
+       return False

diff --git a/pym/repoman/main.py b/pym/repoman/main.py
index 9db52c0..c680752 100755
--- a/pym/repoman/main.py
+++ b/pym/repoman/main.py
@@ -51,6 +51,7 @@ from repoman.checks.ebuilds.fetches import FetchChecks
 from repoman.checks.ebuilds.isebuild import IsEbuild
 from repoman.checks.ebuilds.thirdpartymirrors import ThirdPartyMirrors
 from repoman.checks.ebuilds.manifests import Manifests
+from repoman.checks.ebuilds.misc import bad_split_check, pkg_invalid
 from repoman.checks.ebuilds.pkgmetadata import PkgMetadata
 from repoman.ebuild import Ebuild
 from repoman.errors import err
@@ -76,8 +77,6 @@ util.initialize_logger()
 
 commitmessage = None
 
-pv_toolong_re = re.compile(r'[0-9]{19,}')
-
 bad = create_color_func("BAD")
 
 live_eclasses = portage.const.LIVE_ECLASSES
@@ -368,32 +367,14 @@ for xpkg in effective_scanlist:
                        # ebuild not added to vcs
                        qatracker.add_error("ebuild.notadded",
                                xpkg + "/" + y_ebuild + ".ebuild")
-               myesplit = portage.pkgsplit(y_ebuild)
-
-               is_bad_split = myesplit is None or myesplit[0] != 
xpkg.split("/")[-1]
-
-               if is_bad_split:
-                       is_pv_toolong = pv_toolong_re.search(myesplit[1])
-                       is_pv_toolong2 = pv_toolong_re.search(myesplit[2])
 
-                       if is_pv_toolong or is_pv_toolong2:
-                               qatracker.add_error("ebuild.invalidname",
-                                       xpkg + "/" + y_ebuild + ".ebuild")
-                               continue
-               elif myesplit[0] != pkgdir:
-                       print(pkgdir, myesplit[0])
-                       qatracker.add_error("ebuild.namenomatch",
-                               xpkg + "/" + y_ebuild + ".ebuild")
+##################
+               if bad_split_check(xpkg, y_ebuild, pkgdir, qatracker):
                        continue
-
+###################
                pkg = pkgs[y_ebuild]
-
-               if pkg.invalid:
+               if pkg_invalid(pkg, qatracker):
                        allvalid = False
-                       for k, msgs in pkg.invalid.items():
-                               for msg in msgs:
-                                       qatracker.add_error(k,
-                                               "%s: %s" % 
(ebuild.relative_path, msg))
                        continue
 
                myaux = pkg._metadata

Reply via email to