#! /usr/bin/env python assert __name__ == "__main__" import sys from macro import Macro, writeFile tmpl = """\
Autoconf Archive | Macros by Category |
%(synopsis)s
Download %(name)s.m4 or browse the revision history.
%(authors)s
%(license)s """ def quoteHtml(buf): return buf.replace('&', "&").replace('<', "<").replace('>', ">") def formatParagraph(para): assert para assert para[0] assert para[0][0] if para[0][0].isspace(): return "%s" % quoteHtml('\n'.join(para)) else: return "
%s
" % quoteHtml('\n'.join(para)) def formatAuthor(a): assert a a["year"] = quoteHtml(a["year"]) a["name"] = quoteHtml(a["name"]) if "email" in a: a["email"] = quoteHtml(a["email"]) return "Copyright © %(year)s %(name)s <%(email)s>" % a else: return "Copyright © %(year)s %(name)s" % a if len(sys.argv) != 3: raise Exception("invalid command line syntax: %s" % ' '.join(map(repr, sys.argv))) (m4File,outFile) = sys.argv[1:] assert outFile != m4File m = Macro(m4File) if m.__dict__.get("obsolete"): m.obsolete = "%s
" % quoteHtml(l) for l in m.synopsis ])
m.description = '\n\n'.join(map(formatParagraph, m.description))
m.description = m.description.replace("\n\n", "\n\n") m.authors = "
\n".join(map(formatAuthor, m.authors)) m.license = '\n'.join(map(formatParagraph, m.license)) writeFile(outFile, tmpl % m.__dict__)