commit:     4436beeb6f74ffe091cfdfab4975960edf687fbb
Author:     Tom Wijsman <tomwij <AT> gentoo <DOT> org>
AuthorDate: Fri Jun  6 14:40:39 2014 +0000
Commit:     Brian Dolbec <dolsen <AT> gentoo <DOT> org>
CommitDate: Mon Sep 21 23:42:44 2015 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=4436beeb

repoman/main.py: Split EAPI checks to checks/ebuilds/variables/eapi.py

 pym/repoman/checks/ebuilds/variables/__init__.py |  0
 pym/repoman/checks/ebuilds/variables/eapi.py     | 44 ++++++++++++++++++++++++
 pym/repoman/main.py                              | 12 +++----
 3 files changed, 49 insertions(+), 7 deletions(-)

diff --git a/pym/repoman/checks/ebuilds/variables/__init__.py 
b/pym/repoman/checks/ebuilds/variables/__init__.py
new file mode 100644
index 0000000..e69de29

diff --git a/pym/repoman/checks/ebuilds/variables/eapi.py 
b/pym/repoman/checks/ebuilds/variables/eapi.py
new file mode 100644
index 0000000..2f8b1cb
--- /dev/null
+++ b/pym/repoman/checks/ebuilds/variables/eapi.py
@@ -0,0 +1,44 @@
+
+'''eapi.py
+Perform checks on the EAPI variable.
+'''
+
+
+class EAPIChecks(object):
+       '''Perform checks on the EAPI variable.'''
+
+       def __init__(self, qatracker, repo_settings):
+               '''
+               @param qatracker: QATracker instance
+               @param repo_settings: Repository settings
+               '''
+               self.qatracker = qatracker
+               self.repo_settings = repo_settings
+
+       def check(self, pkg, ebuild):
+               '''
+               @param pkg: Package in which we check (object).
+               @param ebuild: Ebuild which we check (object).
+               '''
+               eapi = pkg._metadata["EAPI"]
+
+               if not self._checkBanned(ebuild, eapi):
+                       self._checkDeprecated(ebuild, eapi)
+
+       def _checkBanned(self, ebuild, eapi):
+               if self.repo_settings.repo_config.eapi_is_banned(eapi):
+                       self.qatracker.add_error(
+                               "repo.eapi.banned", "%s: %s" % 
(ebuild.relative_path, eapi))
+
+                       return True
+
+               return False
+
+       def _checkDeprecated(self, ebuild, eapi):
+               if self.repo_settings.repo_config.eapi_is_deprecated(eapi):
+                       self.qatracker.add_error(
+                               "repo.eapi.deprecated", "%s: %s" % 
(ebuild.relative_path, eapi))
+
+                       return True
+
+               return False

diff --git a/pym/repoman/main.py b/pym/repoman/main.py
index 1e23387..42600cd 100755
--- a/pym/repoman/main.py
+++ b/pym/repoman/main.py
@@ -61,6 +61,7 @@ from repoman.check_missingslot import check_missingslot
 from repoman.checks.ebuilds.misc import bad_split_check, pkg_invalid
 from repoman.checks.ebuilds.pkgmetadata import PkgMetadata
 from repoman.checks.ebuilds.use_flags import USEFlagChecks
+from repoman.checks.ebuilds.variables.eapi import EAPIChecks
 from repoman.ebuild import Ebuild
 from repoman.errors import err
 from repoman.modules.commit import repochecks
@@ -295,6 +296,7 @@ use_flag_checks = USEFlagChecks(qatracker, uselist)
 keywordcheck = KeywordChecks(qatracker, options)
 liveeclasscheck = LiveEclassChecks(qatracker)
 rubyeclasscheck = RubyEclassChecks(qatracker)
+eapicheck = EAPIChecks(qatracker, repo_settings)
 ######################
 
 for xpkg in effective_scanlist:
@@ -396,13 +398,9 @@ for xpkg in effective_scanlist:
                inherited = pkg.inherited
                live_ebuild = live_eclasses.intersection(inherited)
 
-               if repo_settings.repo_config.eapi_is_banned(eapi):
-                       qatracker.add_error(
-                               "repo.eapi.banned", "%s: %s" % 
(ebuild.relative_path, eapi))
-
-               elif repo_settings.repo_config.eapi_is_deprecated(eapi):
-                       qatracker.add_error(
-                               "repo.eapi.deprecated", "%s: %s" % 
(ebuild.relative_path, eapi))
+               #######################
+               eapicheck.check(pkg, ebuild)
+               #######################
 
                for k, v in myaux.items():
                        if not isinstance(v, basestring):

Reply via email to