mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-07-27 19:22:28 -04:00
99 lines
2.8 KiB
Python
99 lines
2.8 KiB
Python
#!/usr/bin/python
|
|
|
|
# This script is used to bump the bjam version. It takes a single argument, e.g
|
|
#
|
|
# ./bump_version.py 3.1.9
|
|
#
|
|
# and updates all the necessary files.
|
|
#
|
|
# Copyright 2006 Rene Rivera.
|
|
# Copyright 2005-2006 Vladimir Prus.
|
|
# Distributed under the Boost Software License, Version 1.0.
|
|
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
|
|
import os
|
|
import os.path
|
|
import re
|
|
import string
|
|
import sys
|
|
|
|
srcdir = os.path.abspath(os.path.dirname(__file__))
|
|
docdir = os.path.abspath(os.path.join(srcdir, "..", "doc"))
|
|
|
|
|
|
def edit(file, *replacements):
|
|
print(" '%s'..." % file)
|
|
f = open(file, 'r')
|
|
text = f.read()
|
|
f.close()
|
|
for (source, target) in replacements:
|
|
text, n = re.compile(source, re.MULTILINE).subn(target, text)
|
|
assert n > 0
|
|
f = open(file, 'w')
|
|
f.write(text)
|
|
f.close()
|
|
|
|
|
|
def make_edits(ver):
|
|
ver03 = (list(ver) + [0] * 3)[0:3]
|
|
ver02 = ver03[0:2]
|
|
|
|
join = lambda v, s : s.join(str(x) for x in v)
|
|
dotJoin = lambda v : join(v, ".")
|
|
|
|
print("Setting version to %s" % str(ver03))
|
|
|
|
edit(os.path.join(srcdir, "boost-jam.spec"),
|
|
('^(Version:) .*$', '\\1 %s' % dotJoin(ver03)))
|
|
|
|
edit(os.path.join(srcdir, "build.jam"),
|
|
('^(_VERSION_ =).* ;$', '\\1 %s ;' % join(ver03, " ")))
|
|
|
|
edit(os.path.join(docdir, "bjam.qbk"),
|
|
('(\[version).*(\])', '\\1: %s\\2' % dotJoin(ver03)),
|
|
('(\[def :version:).*(\])', '\\1 %s\\2' % dotJoin(ver03)))
|
|
|
|
edit(os.path.join(srcdir, "patchlevel.h"),
|
|
('^(#define VERSION_MAJOR) .*$', '\\1 %s' % ver03[0]),
|
|
('^(#define VERSION_MINOR) .*$', '\\1 %s' % ver03[1]),
|
|
('^(#define VERSION_PATCH) .*$', '\\1 %s' % ver03[2]),
|
|
('^(#define VERSION_MAJOR_SYM) .*$', '\\1 "%02d"' % ver03[0]),
|
|
('^(#define VERSION_MINOR_SYM) .*$', '\\1 "%02d"' % ver03[1]),
|
|
('^(#define VERSION_PATCH_SYM) .*$', '\\1 "%02d"' % ver03[2]),
|
|
('^(#define VERSION) .*$', '\\1 "%s"' % dotJoin(ver)),
|
|
('^(#define JAMVERSYM) .*$', '\\1 "JAMVERSION=%s"' % dotJoin(ver02)))
|
|
|
|
|
|
def main():
|
|
if len(sys.argv) < 2:
|
|
print("Expect new version as argument.")
|
|
sys.exit(1)
|
|
if len(sys.argv) > 3:
|
|
print("Too many arguments.")
|
|
sys.exit(1)
|
|
|
|
version = sys.argv[1].split(".")
|
|
if len(version) > 3:
|
|
print("Expect version argument in the format: <MAJOR>.<MINOR>.<PATCH>")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
version = list(int(x) for x in version)
|
|
except ValueError:
|
|
print("Version values must be valid integers.")
|
|
sys.exit(1)
|
|
|
|
while version and version[-1] == 0:
|
|
version.pop()
|
|
|
|
if not version:
|
|
print("At least one of the version values must be positive.")
|
|
sys.exit()
|
|
|
|
make_edits(version)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|