Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r13411 - main/trunk/pym/repoman
Date: Wed, 29 Apr 2009 18:27:59
Message-Id: E1LzEVg-0000jP-4Q@stork.gentoo.org
1 Author: zmedico
2 Date: 2009-04-29 18:27:55 +0000 (Wed, 29 Apr 2009)
3 New Revision: 13411
4
5 Modified:
6 main/trunk/pym/repoman/checks.py
7 Log:
8 Make EbuildWhitespace ignore here-documents. Thanks to Diego Petten?\195?\178
9 <flameeyes@g.o> for reporting.
10
11
12 Modified: main/trunk/pym/repoman/checks.py
13 ===================================================================
14 --- main/trunk/pym/repoman/checks.py 2009-04-29 18:00:07 UTC (rev 13410)
15 +++ main/trunk/pym/repoman/checks.py 2009-04-29 18:27:55 UTC (rev 13411)
16 @@ -71,14 +71,29 @@
17 ignore_line = re.compile(r'(^$)|(^(\t)*#)')
18 leading_spaces = re.compile(r'^[\S\t]')
19 trailing_whitespace = re.compile(r'.*([\S]$)')
20 + here_doc_re = re.compile(r'.*\s<<[-]?(\w+)$')
21
22 + def new(self, pkg):
23 + self._here_doc_delim = None
24 +
25 def check(self, num, line):
26 - if not self.leading_spaces.match(line):
27 - return errors.LEADING_SPACES_ERROR
28 - if not self.trailing_whitespace.match(line):
29 - return errors.TRAILING_WHITESPACE_ERROR
30
31 + # Check if we're inside a here-document.
32 + if self._here_doc_delim is not None:
33 + if self._here_doc_delim.match(line):
34 + self._here_doc_delim = None
35 + if self._here_doc_delim is None:
36 + here_doc = self.here_doc_re.match(line)
37 + if here_doc is not None:
38 + self._here_doc_delim = re.compile('^%s$' % here_doc.group(1))
39
40 + if self._here_doc_delim is None:
41 + # We're not in a here-document.
42 + if self.leading_spaces.match(line) is None:
43 + return errors.LEADING_SPACES_ERROR
44 + if self.trailing_whitespace.match(line) is None:
45 + return errors.TRAILING_WHITESPACE_ERROR
46 +
47 class EbuildQuote(LineCheck):
48 """Ensure ebuilds have valid quoting around things like D,FILESDIR, etc..."""