From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 7E9EE58973 for ; Sat, 30 Jan 2016 08:00:20 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id A9CC121C010; Sat, 30 Jan 2016 08:00:07 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 0F0B421C04B for ; Sat, 30 Jan 2016 08:00:06 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 75116340B29 for ; Sat, 30 Jan 2016 08:00:05 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id B2EEBD00 for ; Sat, 30 Jan 2016 08:00:01 +0000 (UTC) From: "Brian Dolbec" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Brian Dolbec" Message-ID: <1454140219.0172019530d7a71d04f4ded5cda8008edbaab739.dolsen@gentoo> Subject: [gentoo-commits] proj/portage:repoman commit in: pym/repoman/modules/scan/metadata/, pym/repoman/checks/ebuilds/variables/, ... X-VCS-Repository: proj/portage X-VCS-Files: pym/repoman/checks/ebuilds/variables/restrict.py pym/repoman/modules/scan/metadata/__init__.py pym/repoman/modules/scan/metadata/restrict.py pym/repoman/scanner.py X-VCS-Directories: pym/repoman/modules/scan/metadata/ pym/repoman/checks/ebuilds/variables/ pym/repoman/ X-VCS-Committer: dolsen X-VCS-Committer-Name: Brian Dolbec X-VCS-Revision: 0172019530d7a71d04f4ded5cda8008edbaab739 X-VCS-Branch: repoman Date: Sat, 30 Jan 2016 08:00:01 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 5415e73c-a74e-4504-86fc-c94a6af7602e X-Archives-Hash: 656041f7c8144c8b3f42653e7c1174a9 commit: 0172019530d7a71d04f4ded5cda8008edbaab739 Author: Brian Dolbec gentoo org> AuthorDate: Sun Jan 3 23:10:48 2016 +0000 Commit: Brian Dolbec gentoo org> CommitDate: Sat Jan 30 07:50:19 2016 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=01720195 repoman: Migrate RestrictChecks to a plugin module pym/repoman/modules/scan/metadata/__init__.py | 9 +++++++ .../scan/metadata}/restrict.py | 29 +++++++++++++++------- pym/repoman/scanner.py | 9 +------ 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/pym/repoman/modules/scan/metadata/__init__.py b/pym/repoman/modules/scan/metadata/__init__.py index c8f3609..4f376e1 100644 --- a/pym/repoman/modules/scan/metadata/__init__.py +++ b/pym/repoman/modules/scan/metadata/__init__.py @@ -46,6 +46,15 @@ module_spec = { 'func_desc': { }, }, + 'restrict-metadata': { + 'name': "restrict", + 'sourcefile': "restrict", + 'class': "RestrictChecks", + 'description': doc, + 'functions': ['check'], + 'func_desc': { + }, + }, } } diff --git a/pym/repoman/checks/ebuilds/variables/restrict.py b/pym/repoman/modules/scan/metadata/restrict.py similarity index 54% rename from pym/repoman/checks/ebuilds/variables/restrict.py rename to pym/repoman/modules/scan/metadata/restrict.py index 215b792..93ca298 100644 --- a/pym/repoman/checks/ebuilds/variables/restrict.py +++ b/pym/repoman/modules/scan/metadata/restrict.py @@ -12,21 +12,23 @@ from repoman.qa_data import valid_restrict class RestrictChecks(object): '''Perform checks on the RESTRICT variable.''' - def __init__(self, qatracker): + def __init__(self, **kwargs): ''' @param qatracker: QATracker instance ''' - self.qatracker = qatracker + self.qatracker = kwargs.get('qatracker') - def check(self, pkg, package, ebuild, y_ebuild): + def check(self, **kwargs): + xpkg = kwargs.get('xpkg') + ebuild = kwargs.get('ebuild') + y_ebuild = kwargs.get('y_ebuild') myrestrict = None try: myrestrict = portage.dep.use_reduce( - pkg._metadata["RESTRICT"], matchall=1, flat=True) + ebuild.metadata["RESTRICT"], matchall=1, flat=True) except portage.exception.InvalidDependString as e: - self. qatracker.add_error( - "RESTRICT.syntax", + self.qatracker.add_error("RESTRICT.syntax", "%s: RESTRICT: %s" % (ebuild.relative_path, e)) del e @@ -36,6 +38,15 @@ class RestrictChecks(object): if mybadrestrict: for mybad in mybadrestrict: - self.qatracker.add_error( - "RESTRICT.invalid", - package + "/" + y_ebuild + ".ebuild: %s" % mybad) + self.qatracker.add_error("RESTRICT.invalid", + "%s/%s.ebuild: %s" % (xpkg, y_ebuild, mybad)) + return {'continue': False} + + @property + def runInPkgs(self): + return (False, []) + + @property + def runInEbuilds(self): + return (True, [self.check]) + diff --git a/pym/repoman/scanner.py b/pym/repoman/scanner.py index 55f3d56..dcb955c 100644 --- a/pym/repoman/scanner.py +++ b/pym/repoman/scanner.py @@ -18,7 +18,6 @@ from portage import _unicode_encode from portage.dep import Atom from portage.output import green from repoman.checks.ebuilds.checks import run_checks -from repoman.checks.ebuilds.variables.restrict import RestrictChecks from repoman.modules.commit import repochecks from repoman.profile import check_profiles, dev_profile_keywords, setup_profile from repoman.repos import repo_metadata @@ -211,10 +210,6 @@ class Scanner(object): print("Initializing class name:", mod_class.__name__) self.modules[mod_class.__name__] = mod_class(**self.kwargs) - # initialize our checks classes here before the big xpkg loop - self.restrictcheck = RestrictChecks(self.qatracker) - - def scan_pkgs(self, can_force): dynamic_data = {'can_force': can_force} for xpkg in self.effective_scanlist: @@ -298,7 +293,7 @@ class Scanner(object): ('description', 'DescriptionChecks'), (None, 'KeywordChecks'), ('arches', 'ArchChecks'), ('depend', 'DependChecks'), ('use_flags', 'USEFlagChecks'), ('ruby', 'RubyEclassChecks'), - ('license', 'LicenseChecks'), + ('license', 'LicenseChecks'), ('restrict', 'RestrictChecks'), ]: if mod[0]: mod_class = MODULE_CONTROLLER.get_class(mod[0]) @@ -326,8 +321,6 @@ class Scanner(object): if y_ebuild_continue: continue - self.restrictcheck.check(dynamic_data['pkg'], xpkg, dynamic_data['ebuild'], y_ebuild) - # Syntax Checks if not self.vcs_settings.vcs_preserves_mtime: if dynamic_data['ebuild'].ebuild_path not in self.changed.new_ebuilds and \