summaryrefslogtreecommitdiff
path: root/docgen.py
diff options
context:
space:
mode:
authorinfirit <[email protected]>2014-07-17 12:18:35 +0200
committerinfirit <[email protected]>2014-07-17 12:18:35 +0200
commit3bd6fc73c8287c92f5d6a84a1e9e45e906ec36e7 (patch)
treeb41f26a2c5c4e7ad5768e957fb4ce52556e05bbf /docgen.py
parent68a6fc1faaeb47d82347e3f5390ac4bda2cad561 (diff)
downloadcaja-dropbox-3bd6fc73c8287c92f5d6a84a1e9e45e906ec36e7.tar.bz2
caja-dropbox-3bd6fc73c8287c92f5d6a84a1e9e45e906ec36e7.tar.xz
docgen: Don't use stdin and stdout
The encoding on stdin and stdout are usually ascii and may cause problems with writing unicode to it. Instead of this we open the file directly and avoid dealing with annoying unicode encode/decode errors.
Diffstat (limited to 'docgen.py')
-rw-r--r--docgen.py31
1 files changed, 20 insertions, 11 deletions
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)