+from __future__ import unicode_literals
+
+import io
import sys
import re
+README_FILE = 'README.md'
helptext = sys.stdin.read()
-f = open('README.md')
-oldreadme = f.read()
-f.close()
+if isinstance(helptext, bytes):
+ helptext = helptext.decode('utf-8')
+
+with io.open(README_FILE, encoding='utf-8') as f:
+ oldreadme = f.read()
header = oldreadme[:oldreadme.index('# OPTIONS')]
footer = oldreadme[oldreadme.index('# CONFIGURATION'):]
-options = helptext[helptext.index(' General Options:')+19:]
-options = re.sub(r'^ (\w.+)$', r'## \1', options, flags=re.M)
+options = helptext[helptext.index(' General Options:') + 19:]
+options = re.sub(r'(?m)^ (\w.+)$', r'## \1', options)
options = '# OPTIONS\n' + options + '\n'
-f = open('README.md', 'w')
-f.write(header)
-f.write(options)
-f.write(footer)
-f.close()
\ No newline at end of file
+with io.open(README_FILE, 'w', encoding='utf-8') as f:
+ f.write(header)
+ f.write(options)
+ f.write(footer)