Gentoo Archives: gentoo-commits

From: Brian Dolbec <dolsen@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:repoman commit in: repoman/pym/repoman/modules/linechecks/whitespace/
Date: Fri, 30 Mar 2018 00:49:02
Message-Id: 1522370626.c52890d4cac9bb8423a27d938b3604b79e3b0f4c.dolsen@gentoo
1 commit: c52890d4cac9bb8423a27d938b3604b79e3b0f4c
2 Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
3 AuthorDate: Sat Jul 15 01:07:13 2017 +0000
4 Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
5 CommitDate: Fri Mar 30 00:43:46 2018 +0000
6 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=c52890d4
7
8 repoman: New linechecks module, whitespace
9
10 .../modules/linechecks/whitespace/__init__.py | 27 ++++++++++++++++++++++
11 .../repoman/modules/linechecks/whitespace/blank.py | 25 ++++++++++++++++++++
12 .../modules/linechecks/whitespace/whitespace.py | 21 +++++++++++++++++
13 3 files changed, 73 insertions(+)
14
15 diff --git a/repoman/pym/repoman/modules/linechecks/whitespace/__init__.py b/repoman/pym/repoman/modules/linechecks/whitespace/__init__.py
16 new file mode 100644
17 index 000000000..ded690ed7
18 --- /dev/null
19 +++ b/repoman/pym/repoman/modules/linechecks/whitespace/__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 = """Whitespace plug-in module for repoman LineChecks.
25 +Performs checks for useless whitespace in ebuilds."""
26 +__doc__ = doc[:]
27 +
28 +
29 +module_spec = {
30 + 'name': 'do',
31 + 'description': doc,
32 + 'provides':{
33 + 'whitespace-check': {
34 + 'name': "whitespace",
35 + 'sourcefile': "whitespace",
36 + 'class': "EbuildWhitespace",
37 + 'description': doc,
38 + },
39 + 'blankline-check': {
40 + 'name': "blankline",
41 + 'sourcefile': "blank",
42 + 'class': "EbuildBlankLine",
43 + 'description': doc,
44 + },
45 + }
46 +}
47 +
48
49 diff --git a/repoman/pym/repoman/modules/linechecks/whitespace/blank.py b/repoman/pym/repoman/modules/linechecks/whitespace/blank.py
50 new file mode 100644
51 index 000000000..2ab4097a3
52 --- /dev/null
53 +++ b/repoman/pym/repoman/modules/linechecks/whitespace/blank.py
54 @@ -0,0 +1,25 @@
55 +
56 +import re
57 +
58 +from repoman.modules.linechecks.base import LineCheck
59 +
60 +
61 +class EbuildBlankLine(LineCheck):
62 + repoman_check_name = 'ebuild.minorsyn'
63 + ignore_comment = False
64 + blank_line = re.compile(r'^$')
65 +
66 + def new(self, pkg):
67 + self.line_is_blank = False
68 +
69 + def check(self, num, line):
70 + if self.line_is_blank and self.blank_line.match(line):
71 + return 'Useless blank line on line: %d'
72 + if self.blank_line.match(line):
73 + self.line_is_blank = True
74 + else:
75 + self.line_is_blank = False
76 +
77 + def end(self):
78 + if self.line_is_blank:
79 + yield 'Useless blank line on last line'
80
81 diff --git a/repoman/pym/repoman/modules/linechecks/whitespace/whitespace.py b/repoman/pym/repoman/modules/linechecks/whitespace/whitespace.py
82 new file mode 100644
83 index 000000000..556b2ab81
84 --- /dev/null
85 +++ b/repoman/pym/repoman/modules/linechecks/whitespace/whitespace.py
86 @@ -0,0 +1,21 @@
87 +
88 +import re
89 +
90 +from repoman.modules.linechecks.base import LineCheck
91 +
92 +
93 +class EbuildWhitespace(LineCheck):
94 + """Ensure ebuilds have proper whitespacing"""
95 +
96 + repoman_check_name = 'ebuild.minorsyn'
97 +
98 + ignore_line = re.compile(r'(^$)|(^(\t)*#)')
99 + ignore_comment = False
100 + leading_spaces = re.compile(r'^[\S\t]')
101 + trailing_whitespace = re.compile(r'.*([\S]$)')
102 +
103 + def check(self, num, line):
104 + if self.leading_spaces.match(line) is None:
105 + return self.errors['LEADING_SPACES_ERROR']
106 + if self.trailing_whitespace.match(line) is None:
107 + return self.errors['TRAILING_WHITESPACE_ERROR']