chiark / gitweb /
build-sys: check if manpage ids match file names
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 7 Mar 2013 18:04:17 +0000 (13:04 -0500)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 7 Mar 2013 18:04:17 +0000 (13:04 -0500)
Commit ed1553a fixed current errors, but this error is easy to
make. A wrong id messes up the indexes and linking, so it is
better to catch this automatically.

make-man-index.py

index f829d98..d38d5b6 100755 (executable)
@@ -21,6 +21,7 @@
 import collections
 import xml.etree.ElementTree as tree
 import sys
+import re
 MDASH = ' — ' if sys.version_info.major >= 3 else ' -- '
 
 TEMPLATE = '''\
@@ -66,10 +67,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())