#! /usr/bin/env python assert __name__ == "__main__" import sys from macro import Macro, writeFile tmpl = """\ Autoconf Macro: %(name)s
Autoconf Archive Macros by Category
Search:

%(name)s

SYNOPSIS

%(synopsis)s

DESCRIPTION

%(description)s

SOURCE CODE

Download %(name)s.m4 or browse the revision history.

LICENSE

%(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) m.synopsis = "
\n".join([ "%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__)