diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-04-29 19:13:15 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-04-29 19:13:15 +0000 |
commit | 70456279dbe24b22a7442c1ac5c27aeebc8ee6e7 (patch) | |
tree | 94e3cf3438af3b52adc33f9f752d6b9cc0128732 | |
parent | 136040e64f40707058ef660e7932f187b86ae06e (diff) | |
download | portage-70456279dbe24b22a7442c1ac5c27aeebc8ee6e7.tar.gz portage-70456279dbe24b22a7442c1ac5c27aeebc8ee6e7.tar.bz2 portage-70456279dbe24b22a7442c1ac5c27aeebc8ee6e7.zip |
Move the here-document code from the EbuildWhitespace check to the
run_checks() function, so that all checks ignore the content of
here-documents.
svn path=/main/trunk/; revision=13412
-rw-r--r-- | pym/repoman/checks.py | 52 |
1 files changed, 26 insertions, 26 deletions
diff --git a/pym/repoman/checks.py b/pym/repoman/checks.py index 075370b6b..732f6eb95 100644 --- a/pym/repoman/checks.py +++ b/pym/repoman/checks.py @@ -71,28 +71,12 @@ class EbuildWhitespace(LineCheck): ignore_line = re.compile(r'(^$)|(^(\t)*#)') leading_spaces = re.compile(r'^[\S\t]') trailing_whitespace = re.compile(r'.*([\S]$)') - here_doc_re = re.compile(r'.*\s<<[-]?(\w+)$') - - def new(self, pkg): - self._here_doc_delim = None def check(self, num, line): - - # Check if we're inside a here-document. - if self._here_doc_delim is not None: - if self._here_doc_delim.match(line): - self._here_doc_delim = None - if self._here_doc_delim is None: - here_doc = self.here_doc_re.match(line) - if here_doc is not None: - self._here_doc_delim = re.compile('^%s$' % here_doc.group(1)) - - if self._here_doc_delim is None: - # We're not in a here-document. - if self.leading_spaces.match(line) is None: - return errors.LEADING_SPACES_ERROR - if self.trailing_whitespace.match(line) is None: - return errors.TRAILING_WHITESPACE_ERROR + if self.leading_spaces.match(line) is None: + return errors.LEADING_SPACES_ERROR + if self.trailing_whitespace.match(line) is None: + return errors.TRAILING_WHITESPACE_ERROR class EbuildQuote(LineCheck): """Ensure ebuilds have valid quoting around things like D,FILESDIR, etc...""" @@ -386,18 +370,34 @@ _constant_checks = tuple((c() for c in ( EMakeParallelDisabled, EMakeParallelDisabledViaMAKEOPTS, DeprecatedBindnowFlags, WantAutoDefaultValue))) +_here_doc_re = re.compile(r'.*\s<<[-]?(\w+)$') + def run_checks(contents, pkg): checks = _constant_checks + here_doc_delim = None for lc in checks: lc.new(pkg) for num, line in enumerate(contents): - for lc in checks: - ignore = lc.ignore_line - if not ignore or not ignore.match(line): - e = lc.check(num, line) - if e: - yield lc.repoman_check_name, e % (num + 1) + + # Check if we're inside a here-document. + if here_doc_delim is not None: + if here_doc_delim.match(line): + here_doc_delim = None + if here_doc_delim is None: + here_doc = _here_doc_re.match(line) + if here_doc is not None: + here_doc_delim = re.compile('^%s$' % here_doc.group(1)) + + if here_doc_delim is None: + # We're not in a here-document. + for lc in checks: + ignore = lc.ignore_line + if not ignore or not ignore.match(line): + e = lc.check(num, line) + if e: + yield lc.repoman_check_name, e % (num + 1) + for lc in checks: i = lc.end() if i is not None: |