summaryrefslogtreecommitdiffstats
path: root/scripts/set_version.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/set_version.py')
-rwxr-xr-xscripts/set_version.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/scripts/set_version.py b/scripts/set_version.py
new file mode 100755
index 0000000..e34c7ae
--- /dev/null
+++ b/scripts/set_version.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+"""Script to set the version number wherever it's needed before a release."""
+
+from __future__ import unicode_literals, print_function
+import codecs
+import os
+import re
+import sys
+import glob
+
+
+def sed_like_thing(pattern, repl, path):
+ """Like re.sub but applies to a file instead of a string."""
+
+ with codecs.open(path, 'rb', 'utf8') as inf:
+ data = inf.read()
+
+ data = re.sub(pattern, repl, data)
+
+ with codecs.open(path, 'wb+', 'utf8') as outf:
+ outf.write(data)
+
+if __name__ == "__main__":
+ print("New version number: ", end="")
+ sys.stdout.flush()
+ version = sys.stdin.readline().strip()
+
+ for doc in glob.glob(os.path.join("docs/*.txt")):
+ sed_like_thing(":Version: .*", ":Version: {0}".format(version), doc)
+
+ sed_like_thing("version='.+'", "version='{0}'".format(version), 'setup.py')
+ sed_like_thing('__version__ = ".*"', '__version__ = "{0}"'.format(version), os.path.join('nikola', '__init__.py'))
+ sed_like_thing('New in Master', 'New in {0}'.format(version), 'CHANGES.txt')
+ os.system("help2man -h help -N --version-string='{0}' nikola > {1}".format(version, os.path.join('docs', 'man', 'nikola.1')))