summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Sautier <sautier.louis@gmail.com>2017-06-19 14:31:50 +0200
committerBrian Dolbec <dolsen@gentoo.org>2017-07-18 11:40:50 -0700
commitfe03f03626db7c86c4ec67957d4500b77a625e7d (patch)
treeb72f1626c15c2091f33859e95b0a14936173b319
parentrepoman: Mark ruby-2.0 as deprecated (diff)
downloadportage-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.py10
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(