From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 217B4139083 for ; Tue, 5 Dec 2017 18:32:24 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 5025CE108C; Tue, 5 Dec 2017 18:32:13 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 19DBEE108C for ; Tue, 5 Dec 2017 18:32:13 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 0FEE633FE49 for ; Tue, 5 Dec 2017 18:32:12 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 6326EAE8C for ; Tue, 5 Dec 2017 18:32:08 +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: <1512498514.bbe75657cc32aeb402a6ff78eba7bd05a3c87424.dolsen@gentoo> Subject: [gentoo-commits] proj/portage:repoman commit in: repoman/cnf/linechecks/, repoman/pym/repoman/modules/linechecks/ X-VCS-Repository: proj/portage X-VCS-Files: repoman/cnf/linechecks/linechecks.yaml repoman/pym/repoman/modules/linechecks/config.py X-VCS-Directories: repoman/pym/repoman/modules/linechecks/ repoman/cnf/linechecks/ X-VCS-Committer: dolsen X-VCS-Committer-Name: Brian Dolbec X-VCS-Revision: bbe75657cc32aeb402a6ff78eba7bd05a3c87424 X-VCS-Branch: repoman Date: Tue, 5 Dec 2017 18:32:08 +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: 76eda6eb-0e1f-40c2-b53f-0ab8b9d02a47 X-Archives-Hash: fa3c8e524d8629841d729a38590fd299 commit: bbe75657cc32aeb402a6ff78eba7bd05a3c87424 Author: Brian Dolbec gentoo org> AuthorDate: Tue Dec 5 18:17:15 2017 +0000 Commit: Brian Dolbec gentoo org> CommitDate: Tue Dec 5 18:28:34 2017 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=bbe75657 repoman linechecks/config.py: Move the errors loading to a new /usr/share/repoman/linechecks directory This new directory can be installed to by third party add on modules that extend the checks. We can also in future use these file to get loaclized translations. repoman/cnf/linechecks/linechecks.yaml | 35 ++++++++++++++++++++++++ repoman/pym/repoman/modules/linechecks/config.py | 21 ++++++++++++-- 2 files changed, 53 insertions(+), 3 deletions(-) diff --git a/repoman/cnf/linechecks/linechecks.yaml b/repoman/cnf/linechecks/linechecks.yaml new file mode 100644 index 000000000..634381e80 --- /dev/null +++ b/repoman/cnf/linechecks/linechecks.yaml @@ -0,0 +1,35 @@ +--- +# linecheck_help.yaml + +# Repoman API version (do not edit) +version: 1 +# minimum +repoman_version: 2.3.3 + +# configuration file for the LineCheck plugins run via the multicheck +# scan module +errors: + COPYRIGHT_ERROR: 'Invalid Gentoo Copyright on line: %d' + LICENSE_ERROR: 'Invalid Gentoo/GPL License on line: %d' + ID_HEADER_ERROR: 'Stale CVS header on line: %d' + NO_BLANK_LINE_ERROR: 'Non-blank line after header on line: %d' + LEADING_SPACES_ERROR: 'Ebuild contains leading spaces on line: %d' + TRAILING_WHITESPACE_ERROR: 'Trailing whitespace error on line: %d' + READONLY_ASSIGNMENT_ERROR: 'Ebuild contains assignment to read-only variable on line: %d' + MISSING_QUOTES_ERROR: 'Unquoted Variable on line: %d' + NESTED_DIE_ERROR: 'Ebuild calls die in a subshell on line: %d' + PATCHES_ERROR: 'PATCHES is not a bash array on line: %d' + REDUNDANT_CD_S_ERROR: 'Ebuild has redundant cd ${S} statement on line: %d' + EMAKE_PARALLEL_DISABLED: 'Upstream parallel compilation bug (ebuild calls emake -j1 on line: %d)' + EMAKE_PARALLEL_DISABLED_VIA_MAKEOPTS: 'Upstream parallel compilation bug (MAKEOPTS=-j1 on line: %d)' + DEPRECATED_BINDNOW_FLAGS: 'Deprecated bindnow-flags call on line: %d' + EAPI_DEFINED_AFTER_INHERIT: 'EAPI defined after inherit on line: %d' + NO_AS_NEEDED: 'Upstream asneeded linking bug (no-as-needed on line: %d)' + PRESERVE_OLD_LIB: 'Ebuild calls deprecated preserve_old_lib on line: %d' + BUILT_WITH_USE: 'built_with_use on line: %d' + NO_OFFSET_WITH_HELPERS: 'Helper function is used with D, ROOT, ED, EROOT or EPREFIX on line: %d' + SANDBOX_ADDPREDICT: 'Ebuild calls addpredict on line: %d' + USEQ_ERROR: 'Ebuild calls deprecated useq function on line: %d' + HASQ_ERROR: 'Ebuild calls deprecated hasq function on line: %d' + URI_HTTPS: 'Ebuild uses http:// but should use https:// on line: %d' + diff --git a/repoman/pym/repoman/modules/linechecks/config.py b/repoman/pym/repoman/modules/linechecks/config.py index 52a9a786b..be58c799c 100644 --- a/repoman/pym/repoman/modules/linechecks/config.py +++ b/repoman/pym/repoman/modules/linechecks/config.py @@ -14,6 +14,8 @@ import os import yaml from copy import deepcopy +from repoman import _not_installed +from repoman import _portage from portage.util import stack_lists from repoman.config import load_config @@ -42,8 +44,7 @@ class LineChecksConfig(object): @param configpaths: ordered list of filepaths to load ''' self.repo_settings = repo_settings - self.infopaths = [os.path.join(path, 'linechecks.yaml') for path in self.repo_settings.masters_list] - logging.debug("LineChecksConfig; configpaths: %s", self.infopaths) + self.infopaths = None self.info_config = None self._config = None self.usex_supported_eapis = None @@ -54,18 +55,32 @@ class LineChecksConfig(object): self.eclass_info = {} self.eclass_info_experimental_inherit = {} self.errors = {} + self.set_infopaths() self.load_checks_info() + def set_infopaths(self): + if _not_installed: + cnfdir = os.path.realpath(os.path.join(os.path.dirname( + os.path.dirname(os.path.dirname(os.path.dirname( + os.path.dirname(__file__))))), 'cnf/linechecks')) + else: + cnfdir = os.path.join(_portage.portage.const.EPREFIX, 'usr/share/repoman/linechecks') + repomanpaths = [os.path.join(cnfdir, _file_) for _file_ in os.listdir(cnfdir)] + logging.debug("LineChecksConfig; repomanpaths: %s", repomanpaths) + repopaths = [os.path.join(path, 'linechecks.yaml') for path in self.repo_settings.masters_list] + self.infopaths = repomanpaths + repopaths + logging.debug("LineChecksConfig; configpaths: %s", self.infopaths) def load_checks_info(self, infopaths=None): '''load the config files in order - @param configpaths: ordered list of filepaths to load + @param infopaths: ordered list of filepaths to load ''' if infopaths: self.infopaths = infopaths elif not self.infopaths: logging.error("LineChecksConfig; Error: No linechecks.yaml files defined") + configs = load_config(self.infopaths, 'yaml', self.repo_settings.repoman_settings.valid_versions) if configs == {}: logging.error("LineChecksConfig: Failed to load a valid 'linechecks.yaml' file at paths: %s", self.infopaths)