Repoman: detect inconsistent metadata.xml indentation
diff --git a/repoman/pym/repoman/modules/scan/metadata/pkgmetadata.py b/repoman/pym/repoman/modules/scan/metadata/pkgmetadata.py
index 92c74e6..6a0f501 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 @@
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(