diff --git a/Makefile.am b/Makefile.am index 8985128..e420332 100644 --- a/Makefile.am +++ b/Makefile.am @@ -10,7 +10,7 @@ caja-dropbox: caja-dropbox.in serializeimages.py chmod +x caja-dropbox caja-dropbox.1: caja-dropbox.txt.in caja-dropbox docgen.py - python docgen.py $(PACKAGE_VERSION) < caja-dropbox.txt.in > caja-dropbox.txt + python docgen.py $(PACKAGE_VERSION) caja-dropbox.txt.in caja-dropbox.txt $(RST2MAN) caja-dropbox.txt > caja-dropbox.1 SUBDIRS = data src diff --git a/docgen.py b/docgen.py index 2ed8ad9..e1afa17 100644 --- a/docgen.py +++ b/docgen.py @@ -1,25 +1,34 @@ +from __future__ import unicode_literals import sys import datetime +import codecs # heeeheee env = {"__name__":"__notmain__"} execfile("caja-dropbox", env) commands = env["commands"] -f = open("AUTHORS", "r") -authors = '| ' + f.read().replace('\n', '\n| ') -f.close() +with codecs.open("AUTHORS", "r", "utf-8") as afile: + authors = '| ' + afile.read().replace('\n', '\n| ') + +with codecs.open(sys.argv[2], "r", encoding="utf-8") as infile: + instr = infile.read() formatted_commands = "" for cmd in commands: split = commands[cmd].__doc__.split('\n', 2) - formatted_commands += split[1].decode('ascii').replace(cmd, "`%s`" % cmd).replace("dropbox", "``dropbox``") - formatted_commands += split[2].decode('ascii').replace('\n', '\n | ') + formatted_commands += split[1].replace(cmd, "`%s`" % cmd).replace("dropbox", "``dropbox``") + formatted_commands += split[2].replace('\n', '\n | ') formatted_commands += '\n\n' -sys.stdout.write(sys.stdin.read().replace\ - ('@AUTHORS@', authors).replace\ - ('@DATE@', datetime.date.today().isoformat()).replace\ - ('@PACKAGE_VERSION@', sys.argv[1]).replace\ - ('@SYNOPSIS@', '| '+'\n| '.join(commands[cmd].__doc__.split('\n', 2)[1].decode('ascii').replace(cmd, "`%s`" % cmd).replace("dropbox", "``dropbox``") for cmd in commands)).replace\ - ('@COMMANDS@', formatted_commands)) +replace = {'@AUTHORS@': authors, + '@DATE@': datetime.date.today().isoformat(), + '@PACKAGE_VERSION@': sys.argv[1], + '@SYNOPSIS@': '| '+'\n| '.join(commands[cmd].__doc__.split('\n', 2)[1].replace(cmd, "`%s`" % cmd).replace("dropbox", "``dropbox``") for cmd in commands), + '@COMMANDS@': formatted_commands} + +for r in replace.keys(): + instr = instr.replace(r, replace[r]) + +with codecs.open(sys.argv[3], "w", encoding="utf-8") as outfile: + outfile.write(instr)