Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:repoman commit in: repoman/pym/repoman/modules/linechecks/useless/
Date: Fri, 30 Mar 2018 05:20:56
Message-Id: 1522381879.340283538afc734790341c78a09742bcd0fc1009.zmedico@gentoo
1 commit: 340283538afc734790341c78a09742bcd0fc1009
2 Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
3 AuthorDate: Sat Jul 15 01:06:38 2017 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Fri Mar 30 03:51:19 2018 +0000
6 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=34028353
7
8 repoman: New linechecks module, useless
9
10 .../repoman/modules/linechecks/useless/__init__.py | 27 ++++++++++++++++++++++
11 .../pym/repoman/modules/linechecks/useless/cd.py | 24 +++++++++++++++++++
12 .../repoman/modules/linechecks/useless/dodoc.py | 16 +++++++++++++
13 3 files changed, 67 insertions(+)
14
15 diff --git a/repoman/pym/repoman/modules/linechecks/useless/__init__.py b/repoman/pym/repoman/modules/linechecks/useless/__init__.py
16 new file mode 100644
17 index 000000000..acc4479f5
18 --- /dev/null
19 +++ b/repoman/pym/repoman/modules/linechecks/useless/__init__.py
20 @@ -0,0 +1,27 @@
21 +# Copyright 2015-2016 Gentoo Foundation
22 +# Distributed under the terms of the GNU General Public License v2
23 +
24 +doc = """Useless plug-in module for repoman LineChecks.
25 +Performs checks for useless operations on ebuilds."""
26 +__doc__ = doc[:]
27 +
28 +
29 +module_spec = {
30 + 'name': 'do',
31 + 'description': doc,
32 + 'provides':{
33 + 'uselesscds-check': {
34 + 'name': "uselesscds",
35 + 'sourcefile': "cd",
36 + 'class': "EbuildUselessCdS",
37 + 'description': doc,
38 + },
39 + 'uselessdodoc-check': {
40 + 'name': "uselessdodoc",
41 + 'sourcefile': "dodoc",
42 + 'class': "EbuildUselessDodoc",
43 + 'description': doc,
44 + },
45 + }
46 +}
47 +
48
49 diff --git a/repoman/pym/repoman/modules/linechecks/useless/cd.py b/repoman/pym/repoman/modules/linechecks/useless/cd.py
50 new file mode 100644
51 index 000000000..3daa04451
52 --- /dev/null
53 +++ b/repoman/pym/repoman/modules/linechecks/useless/cd.py
54 @@ -0,0 +1,24 @@
55 +
56 +import re
57 +
58 +from repoman.modules.linechecks.base import LineCheck
59 +
60 +
61 +class EbuildUselessCdS(LineCheck):
62 + """Check for redundant cd ${S} statements"""
63 + repoman_check_name = 'ebuild.minorsyn'
64 + _src_phases = r'^\s*src_(prepare|configure|compile|install|test)\s*\(\)'
65 + method_re = re.compile(_src_phases)
66 + cds_re = re.compile(r'^\s*cd\s+("\$(\{S\}|S)"|\$(\{S\}|S))\s')
67 +
68 + def __init__(self, errors):
69 + self.errors = errors
70 + self.check_next_line = False
71 +
72 + def check(self, num, line):
73 + if self.check_next_line:
74 + self.check_next_line = False
75 + if self.cds_re.match(line):
76 + return self.errors['REDUNDANT_CD_S_ERROR']
77 + elif self.method_re.match(line):
78 + self.check_next_line = True
79
80 diff --git a/repoman/pym/repoman/modules/linechecks/useless/dodoc.py b/repoman/pym/repoman/modules/linechecks/useless/dodoc.py
81 new file mode 100644
82 index 000000000..502bfbea8
83 --- /dev/null
84 +++ b/repoman/pym/repoman/modules/linechecks/useless/dodoc.py
85 @@ -0,0 +1,16 @@
86 +
87 +import re
88 +
89 +from repoman.modules.linechecks.base import LineCheck
90 +
91 +
92 +class EbuildUselessDodoc(LineCheck):
93 + """Check ebuild for useless files in dodoc arguments."""
94 + repoman_check_name = 'ebuild.minorsyn'
95 + uselessdodoc_re = re.compile(
96 + r'^\s*dodoc(\s+|\s+.*\s+)(ABOUT-NLS|COPYING|LICENCE|LICENSE)($|\s)')
97 +
98 + def check(self, num, line):
99 + match = self.uselessdodoc_re.match(line)
100 + if match:
101 + return "Useless dodoc '%s'" % (match.group(2), ) + " on line: %d"