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