X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=make-man-index.py;h=d9ab5cc7525f35222de6e0c0f4f7f004b465dfc0;hb=49e5de64e22ea4794092b91393545ab08e658e0a;hp=2dbc2da995bf9d5ece4f1ff234be5ff189dc42eb;hpb=dd6f5e4fb8a18822d1de8f98d5b24d1cb4d9e851;p=elogind.git
diff --git a/make-man-index.py b/make-man-index.py
index 2dbc2da99..d9ab5cc75 100755
--- a/make-man-index.py
+++ b/make-man-index.py
@@ -19,12 +19,18 @@
# along with systemd; If not, see .
import collections
-import xml.etree.ElementTree as tree
+try:
+ from lxml import etree as tree
+ PRETTY = dict(pretty_print=True)
+except ImportError:
+ import xml.etree.ElementTree as tree
+ PRETTY = {}
import sys
+import re
MDASH = ' â ' if sys.version_info.major >= 3 else ' -- '
TEMPLATE = '''\
-
+
systemd.index
@@ -66,10 +72,16 @@ SUMMARY = '''\
COUNTS = '\
This index contains {count} entries, referring to {pages} individual manual pages.'
+def check_id(page, t):
+ id = t.getroot().get('id')
+ if not re.search('/' + id + '[.]', page):
+ raise ValueError("id='{}' is not the same as page name '{}'".format(id, page))
+
def make_index(pages):
index = collections.defaultdict(list)
for p in pages:
t = tree.parse(p)
+ check_id(p, t)
section = t.find('./refmeta/manvolnum').text
refname = t.find('./refnamediv/refname').text
purpose = ' '.join(t.find('./refnamediv/refpurpose').text.split())
@@ -123,4 +135,4 @@ def make_page(xml_files):
return template
if __name__ == '__main__':
- tree.dump(make_page(sys.argv[1:]))
+ tree.dump(make_page(sys.argv[1:]), **PRETTY)