/Src/Dependencies/Boost/tools/build/v2/engine/bump_version.py
Python | 80 lines | 52 code | 14 blank | 14 comment | 3 complexity | 77dd4f554884dc7ff740ff9ea65d1d2e MD5 | raw file
Possible License(s): GPL-3.0, LGPL-2.0, Apache-2.0, LGPL-3.0
- #!/usr/bin/python
- # This script is used to bump version of bjam. It takes a single argument, e.g
- #
- # ./bump_version.py 3.1.9
- #
- # and updates all necessary files. For the time being, it's assumes presense
- # of 'perl' executable and Debian-specific 'dch' executable.
- #
- 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)
- text = open(file,'r').read()
- while len(replacements) > 0:
- #~ print " '%s' ==> '%s'" % (replacements[0],replacements[1])
- text = re.compile(replacements[0],re.M).subn(replacements[1],text)[0]
- replacements = replacements[2:]
- #~ print text
- open(file,'w').write(text)
- def make_edits(version):
- edit(os.path.join(srcdir,"boost-jam.spec"), [
- '^Version:.*$','Version: %s' % string.join(version, "."),
- ])
- edit(os.path.join(srcdir,"build.jam"), [
- '^_VERSION_ = .* ;$','_VERSION_ = %s %s %s ;' % (version[0], version[1], version[2]),
- ])
- edit(os.path.join(docdir,"bjam.qbk"), [
- '\[version.*\]','[version: %s]' % string.join(version, '.'),
- '\[def :version:.*\]','[def :version: %s]' % string.join(version, '.'),
- ])
- edit(os.path.join(srcdir,"patchlevel.h"), [
- '^#define VERSION_MAJOR .*$',
- '#define VERSION_MAJOR %s' % (version[0]),
- '^#define VERSION_MINOR .*$',
- '#define VERSION_MINOR %s' % (version[1]),
- '^#define VERSION_PATCH .*$',
- '#define VERSION_PATCH %s' % (version[2]),
- '^#define VERSION_MAJOR_SYM .*$',
- '#define VERSION_MAJOR_SYM "0%s"' % (version[0]),
- '^#define VERSION_MINOR_SYM .*$',
- '#define VERSION_MINOR_SYM "%s"' % (version[1]),
- '^#define VERSION_PATCH_SYM .*$',
- '#define VERSION_PATCH_SYM "%s"' % (version[2]),
- '^#define VERSION .*$',
- '#define VERSION "%s"' % string.join(version, '.'),
- '^#define JAMVERSYM .*$',
- '#define JAMVERSYM "JAMVERSION=%s.%s"' % (version[0],version[1]),
- ])
- def main():
- if len(sys.argv) < 2:
- print "Expect new version as argument"
- sys.exit(1)
- version = string.split(sys.argv[1], ".")
- print "Setting version to", version
- make_edits(version)
- if __name__ == '__main__':
- main()
- #~ 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)