X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=make-man-index.py;h=74a47b821a9538d4e8531fc123ac05edb934a170;hb=ab9716c2489f9141ed13ec22dbb216b3e6fbd6b5;hp=5fa90aefdbcc13b1f5362191eea720fb7fc7a20a;hpb=f6b6728d1dc92754026a7f04d26f83e2290778f4;p=elogind.git
diff --git a/make-man-index.py b/make-man-index.py
index 5fa90aefd..74a47b821 100755
--- a/make-man-index.py
+++ b/make-man-index.py
@@ -19,11 +19,14 @@
# along with systemd; If not, see .
import collections
-import xml.etree.ElementTree as tree
import sys
+import re
+from xml_helper import *
+
+MDASH = ' â ' if sys.version_info.major >= 3 else ' -- '
TEMPLATE = '''\
-
+
systemd.index
@@ -65,10 +68,17 @@ 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)
+ t = xml_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())
@@ -91,7 +101,7 @@ def add_letter(template, letter, pages):
d = tree.SubElement(b, 'manvolnum')
d.text = section
- b.tail = ' â ' + purpose # + ' (' + p + ')'
+ b.tail = MDASH + purpose # + ' (' + p + ')'
tree.SubElement(para, 'sbr')
@@ -110,7 +120,7 @@ def add_summary(template, indexpages):
para = template.find(".//para[@id='counts']")
para.text = COUNTS.format(count=count, pages=len(pages))
-def make_page(xml_files):
+def make_page(*xml_files):
template = tree.fromstring(TEMPLATE)
index = make_index(xml_files)
@@ -122,4 +132,5 @@ def make_page(xml_files):
return template
if __name__ == '__main__':
- tree.dump(make_page(sys.argv[1:]))
+ with open(sys.argv[1], 'wb') as f:
+ f.write(xml_print(make_page(*sys.argv[2:])))