From d3358d507606a5d1100636a6fb9bd8308f4faaa0 Mon Sep 17 00:00:00 2001
From: Gerardo Tauriello <gerardo.tauriello@unibas.ch>
Date: Thu, 4 Jul 2019 14:13:03 +0200
Subject: [PATCH] SCHWED-4329: fix version bumping script.

---
 scripts/bump-version.py | 64 +++++++++++++++++++++++++++++------------
 1 file changed, 46 insertions(+), 18 deletions(-)

diff --git a/scripts/bump-version.py b/scripts/bump-version.py
index 85c3c1063..71419234c 100755
--- a/scripts/bump-version.py
+++ b/scripts/bump-version.py
@@ -1,21 +1,49 @@
 #!/usr/bin/env python
-import sys
-out=[]
-version=sys.argv[1].split('.')
-if len(version)==2:
-  major, minor, patch=(int(version[0]), int(version[1]), 0)
+import sys, fileinput
+
+if len(sys.argv) < 2:
+  print "USAGE: python scripts/bump-version.py OST_VERSION"
+  print "-> OST_VERSION is MAJOR.MINOR.PATCH (e.g. 1.9.1)"
+  print "-> assumption is that a git tag OST_VERSION will exist"
+  sys.exit(1)
+
+# split up version number
+version_string = sys.argv[1]
+version = version_string.split('.')
+if len(version) == 2:
+  major, minor, patch = (int(version[0]), int(version[1]), 0)
+  version_string += ".0"
 else:
-  major, minor, patch=(int(version[0]), int(version[1]), int(version[2]))
-for line in open('modules/config/version.hh'):
-  if line.startswith('#define OST_VERSION_MAJOR'):
-    out.append('#define OST_VERSION_MAJOR %d\n' % major)
-  elif line.startswith('#define OST_VERSION_MINOR'):
-    out.append('#define OST_VERSION_MINOR %d\n' % minor)
-  elif line.startswith('#define OST_VERSION_PATCH'):
-    out.append('#define OST_VERSION_PATCH %d\n' % patch)
-  elif line.startswith("#define OST_VERSION_STRING"):
-    out.append('#define OST_VERSION_STRING "%d.%d.%d"\n' % (major,minor,patch))
-  else:
-    out.append(line)
+  major, minor, patch = (int(version[0]), int(version[1]), int(version[2]))
+
+# fix CMakeLists
+lines = open("CMakeLists.txt").readlines()
+for i, line in enumerate(lines):
+  if line.startswith("set (OST_VERSION_MAJOR"):
+    lines[i] = "set (OST_VERSION_MAJOR %d)\n" % major
+  elif line.startswith("set (OST_VERSION_MINOR"):
+    lines[i] = "set (OST_VERSION_MINOR %d)\n" % minor
+  elif line.startswith("set (OST_VERSION_PATCH"):
+    lines[i] = "set (OST_VERSION_PATCH %d)\n" % patch
+open("CMakeLists.txt", "w").writelines(lines)
+
+# fix CHANGELOG
+lines = open("CHANGELOG.txt").readlines()
+for i, line in enumerate(lines):
+  if line.startswith("Changes in Release") and "X" in line.upper():
+    lines[i] = "Changes in Release %s\n" % version_string
+open("CHANGELOG.txt", "w").writelines(lines)
+
+# fix Docker recipe
+lines = open("docker/Dockerfile").readlines()
+for i, line in enumerate(lines):
+  if line.startswith("ARG OPENSTRUCTURE_VERSION"):
+    lines[i] = 'ARG OPENSTRUCTURE_VERSION="%s"\n' % version_string
+open("docker/Dockerfile", "w").writelines(lines)
 
-open('modules/config/version.hh', 'w').write(''.join(out))
\ No newline at end of file
+# fix Singularity recipe
+lines = open("singularity/Singularity").readlines()
+for i, line in enumerate(lines):
+  if line.startswith("export OPENSTRUCTURE_VERSION="):
+    lines[i] = 'export OPENSTRUCTURE_VERSION="%s"\n' % version_string
+open("singularity/Singularity", "w").writelines(lines)
-- 
GitLab