diff options
Diffstat (limited to 'macro2m4.py')
-rwxr-xr-x | macro2m4.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/macro2m4.py b/macro2m4.py new file mode 100755 index 0000000..30a8659 --- /dev/null +++ b/macro2m4.py @@ -0,0 +1,60 @@ +#! /usr/bin/env python + +assert __name__ == "__main__" + +import sys +from macro import Macro, writeFile + +tmpl = """\ +%(url)s +# +%(obsolete)s# SYNOPSIS +# +%(synopsis)s +# +# DESCRIPTION +# +%(description)s +# +# LICENSE +# +%(authors)s +# +%(license)s + +%(body)s""" + +def formatParagraph(para): + assert para + assert para[0] + assert para[0][0] + if para[0][0].isspace(): + return "# " + "\n# ".join(para) + else: + return "# " + "\n# ".join(para) + +def formatAuthor(a): + assert a + if "email" in a: + return "# Copyright (c) %(year)s %(name)s <%(email)s>" % a + else: + return "# Copyright (c) %(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) +url = "http://www.nongnu.org/autoconf-archive/%s.html" % m.name +lineLen = max(len(url) + 2, 75) +m.url = "# %s\n# %s\n# %s" % ('=' * lineLen, (' ' * ((lineLen - len(url)) / 2)) + url, '=' * lineLen) +if m.__dict__.get("obsolete"): + m.obsolete = "# OBSOLETE MACRO\n#\n" + '\n'.join(map(formatParagraph, m.obsolete)) + "\n#\n" +else: + m.obsolete = "" +m.synopsis = "\n".join([ "# %s" % l for l in m.synopsis ]) +m.description = '\n#\n'.join(map(formatParagraph, m.description)) +m.authors = "\n".join(map(formatAuthor, m.authors)) +m.license = '\n#\n'.join(map(formatParagraph, m.license)) +m.body = '\n'.join(m.body) +writeFile(outFile, tmpl % m.__dict__) |