1 |
commit: 2ceec91cec02b94cad84fddaf29bbe884baa1b6d |
2 |
Author: Louis Sautier <sautier.louis <AT> gmail <DOT> com> |
3 |
AuthorDate: Mon Jun 19 12:31:50 2017 +0000 |
4 |
Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Jun 27 21:29:30 2017 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=2ceec91c |
7 |
|
8 |
Repoman: detect inconsistent metadata.xml indentation |
9 |
|
10 |
repoman/pym/repoman/modules/scan/metadata/pkgmetadata.py | 10 ++++++++++ |
11 |
1 file changed, 10 insertions(+) |
12 |
|
13 |
diff --git a/repoman/pym/repoman/modules/scan/metadata/pkgmetadata.py b/repoman/pym/repoman/modules/scan/metadata/pkgmetadata.py |
14 |
index 92c74e6f8..6a0f501ec 100644 |
15 |
--- a/repoman/pym/repoman/modules/scan/metadata/pkgmetadata.py |
16 |
+++ b/repoman/pym/repoman/modules/scan/metadata/pkgmetadata.py |
17 |
@@ -3,8 +3,10 @@ |
18 |
'''Package Metadata Checks operations''' |
19 |
|
20 |
import sys |
21 |
+import re |
22 |
|
23 |
from itertools import chain |
24 |
+from collections import Counter |
25 |
|
26 |
try: |
27 |
from lxml import etree |
28 |
@@ -96,6 +98,14 @@ class PkgMetadata(ScanBase, USEFlagChecks): |
29 |
self.muselist = frozenset(self.musedict) |
30 |
return False |
31 |
|
32 |
+ indentation_chars = Counter() |
33 |
+ for l in etree.tostring(_metadata_xml).splitlines(): |
34 |
+ indentation_chars.update(re.match(b"\s*", l).group(0)) |
35 |
+ if len(indentation_chars) > 1: |
36 |
+ self.qatracker.add_error("metadata.warning", "%s/metadata.xml: %s" % |
37 |
+ (xpkg, "inconsistent use of tabs and spaces in indentation") |
38 |
+ ) |
39 |
+ |
40 |
xml_encoding = _metadata_xml.docinfo.encoding |
41 |
if xml_encoding.upper() != metadata_xml_encoding: |
42 |
self.qatracker.add_error( |