X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=make-man-rules.py;h=ad601f874f220015b7dad8af72a6df994577cb3c;hp=9c50c8dec2d0af8bf8736cee9730bd8b4c398231;hb=608c3dc5693177d9c297753a63349135a8edd76f;hpb=c78ab91132aab9193f3c17a9a206f8825ff4be84 diff --git a/make-man-rules.py b/make-man-rules.py index 9c50c8dec..ad601f874 100644 --- a/make-man-rules.py +++ b/make-man-rules.py @@ -18,9 +18,9 @@ # along with systemd; If not, see . from __future__ import print_function -import xml.etree.ElementTree as tree import collections import sys +from xml_helper import * SECTION = '''\ MANPAGES += \\ @@ -28,6 +28,7 @@ MANPAGES += \\ MANPAGES_ALIAS += \\ {aliases} {rules} +{htmlrules} ''' CONDITIONAL = '''\ @@ -40,21 +41,20 @@ endif HEADER = '''\ # Do not edit. Generated by make-man-rules.py. -# Regenerate with 'make update-man-list'. +# Regenerate with 'make all update-man-list'. ''' -CLEANFILES = '''\ - -CLEANFILES += \\ - {cleanfiles} +HTML_ALIAS_RULE = '''\ +{}.html: {}.html + $(html-alias) ''' def man(page, number): return 'man/{}.{}'.format(page, number) def add_rules(rules, name): - xml = tree.parse(name) + xml = xml_parse(name) # print('parsing {}'.format(name), file=sys.stderr) conditional = xml.getroot().get('conditional') or '' rulegroup = rules[conditional] @@ -82,7 +82,7 @@ def create_rules(*xml_files): def mjoin(files): return ' \\\n\t'.join(sorted(files) or '#') -def make_makefile(rules, cleanfiles): +def make_makefile(rules): return HEADER + '\n'.join( (CONDITIONAL if conditional else SECTION).format( manpages=mjoin(set(rulegroup.values())), @@ -90,13 +90,12 @@ def make_makefile(rules, cleanfiles): rules='\n'.join('{}: {}'.format(k,v) for k,v in sorted(rulegroup.items()) if k != v), + htmlrules='\n'.join(HTML_ALIAS_RULE.format(k[:-2],v[:-2]) + for k,v in sorted(rulegroup.items()) + if k != v), conditional=conditional) - for conditional,rulegroup in sorted(rules.items())) + \ - CLEANFILES.format(cleanfiles=mjoin(cleanfiles)) + for conditional,rulegroup in sorted(rules.items())) if __name__ == '__main__': - sources = set(sys.argv[1:]) - spares = set([source for source in sources - if source + '.in' in sources]) - rules = create_rules(*(sources - spares)) - print(make_makefile(rules, spares), end='') + rules = create_rules(*sys.argv[1:]) + print(make_makefile(rules), end='')