build-sys: check if manpage ids match file names

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.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2013-03-07 13:04:17 -05:00
parent 7ba9719595
commit 3c1872ebb6
1 changed files with 7 additions and 0 deletions

View File

@ -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())