chiark / gitweb /
network: dhcp - split out the duid structure into a new header file
[elogind.git] / tools / make-man-rules.py
index 0d1ca24..e75bfff 100644 (file)
@@ -42,8 +42,14 @@ endif
 
 HEADER = '''\
 # Do not edit. Generated by make-man-rules.py.
-# Regenerate with 'make all update-man-list'.
-
+# To regenerate:
+#   1. Create, update, or remove source .xml files in man/
+#   2. Run 'make update-man-list'
+#   3. Run 'make man' to generate manpages
+#
+# To make a man page conditional on a configure switch add
+# attribute conditional="ENABLE_WHAT" or conditional="WITH_WHAT"
+# to <refentry> element.
 '''
 
 HTML_ALIAS_RULE = '''\
@@ -53,8 +59,10 @@ HTML_ALIAS_RULE = '''\
 
 FOOTER = '''\
 
+# Really, do not edit this file.
+
 EXTRA_DIST += \\
-       {files}
+       {files}
 '''
 
 def man(page, number):
@@ -66,6 +74,8 @@ def xml(file):
 def add_rules(rules, name):
     xml = xml_parse(name)
     # print('parsing {}'.format(name), file=sys.stderr)
+    if xml.getroot().tag != 'refentry':
+        return
     conditional = xml.getroot().get('conditional') or ''
     rulegroup = rules[conditional]
     refmeta = xml.find('./refmeta')
@@ -86,7 +96,11 @@ def create_rules(xml_files):
     " {conditional => {alias-name => source-name}} "
     rules = collections.defaultdict(dict)
     for name in xml_files:
-        add_rules(rules, name)
+        try:
+            add_rules(rules, name)
+        except Exception:
+            print("Failed to process", name, file=sys.stderr)
+            raise
     return rules
 
 def mjoin(files):