diff options
author | Louis Sautier <sautier.louis@gmail.com> | 2017-06-19 14:31:50 +0200 |
---|---|---|
committer | Brian Dolbec <dolsen@gentoo.org> | 2017-07-18 11:40:50 -0700 |
commit | fe03f03626db7c86c4ec67957d4500b77a625e7d (patch) | |
tree | b72f1626c15c2091f33859e95b0a14936173b319 | |
parent | repoman: Mark ruby-2.0 as deprecated (diff) | |
download | portage-fe03f03626db7c86c4ec67957d4500b77a625e7d.tar.gz portage-fe03f03626db7c86c4ec67957d4500b77a625e7d.tar.bz2 portage-fe03f03626db7c86c4ec67957d4500b77a625e7d.zip |
Repoman: detect inconsistent metadata.xml indentation
-rw-r--r-- | repoman/pym/repoman/modules/scan/metadata/pkgmetadata.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/repoman/pym/repoman/modules/scan/metadata/pkgmetadata.py b/repoman/pym/repoman/modules/scan/metadata/pkgmetadata.py index 92c74e6f8..6a0f501ec 100644 --- a/repoman/pym/repoman/modules/scan/metadata/pkgmetadata.py +++ b/repoman/pym/repoman/modules/scan/metadata/pkgmetadata.py @@ -3,8 +3,10 @@ '''Package Metadata Checks operations''' import sys +import re from itertools import chain +from collections import Counter try: from lxml import etree @@ -96,6 +98,14 @@ class PkgMetadata(ScanBase, USEFlagChecks): self.muselist = frozenset(self.musedict) return False + indentation_chars = Counter() + for l in etree.tostring(_metadata_xml).splitlines(): + indentation_chars.update(re.match(b"\s*", l).group(0)) + if len(indentation_chars) > 1: + self.qatracker.add_error("metadata.warning", "%s/metadata.xml: %s" % + (xpkg, "inconsistent use of tabs and spaces in indentation") + ) + xml_encoding = _metadata_xml.docinfo.encoding if xml_encoding.upper() != metadata_xml_encoding: self.qatracker.add_error( |