| 1 | #!/usr/bin/python | 
|---|
| 2 |  | 
|---|
| 3 | # This script is used to bump version of bjam. It takes a single argument, e.g | 
|---|
| 4 | # | 
|---|
| 5 | #    ./bump_version.py 3.1.9 | 
|---|
| 6 | # | 
|---|
| 7 | # and updates all necessary files. For the time being, it's assumes presense | 
|---|
| 8 | # of 'perl' executable and Debian-specific 'dch' executable. | 
|---|
| 9 | # | 
|---|
| 10 |   | 
|---|
| 11 |  | 
|---|
| 12 | import sys | 
|---|
| 13 | import string | 
|---|
| 14 | import os | 
|---|
| 15 |  | 
|---|
| 16 | def spec(version): | 
|---|
| 17 |     os.system("perl -pi -e 's|^Version:.*|Version: %s|' boost-jam.spec" % | 
|---|
| 18 |               string.join(version, ".")) | 
|---|
| 19 |  | 
|---|
| 20 | def build_jam(version): | 
|---|
| 21 |     os.system("perl -pi -e 's|^VERSION = .* ;|VERSION = %s\$(.)%s\$(.)%s ;|' build.jam" | 
|---|
| 22 |               % (version[0], version[1], version[2])) | 
|---|
| 23 |  | 
|---|
| 24 | def index_html(version): | 
|---|
| 25 |     os.system("perl -pi -e 's|This is version .* of BJam|This is version %s of BJam|' index.html" | 
|---|
| 26 |               % string.join(version, ".")) | 
|---|
| 27 |  | 
|---|
| 28 | def jam_c(version): | 
|---|
| 29 |     re = "\\*major_version = .*, \\*minor_version = .*, \\*changenum = .*"; | 
|---|
| 30 |     new = ('*major_version = "%02d", *minor_version = "%02d", *changenum = "%02d";' % | 
|---|
| 31 |         (int(version[0]), int(version[1]), int(version[2]))) | 
|---|
| 32 |     os.system("perl -pi -e 's|%s|%s|' jam.c" % (re, new)) | 
|---|
| 33 |  | 
|---|
| 34 | def patchlevel(version): | 
|---|
| 35 |     os.system("perl -pi -e 's|VERSION .*|VERSION \"%s\"|' patchlevel.h" % | 
|---|
| 36 |               string.join(version, ".")) | 
|---|
| 37 |  | 
|---|
| 38 | def dch(version): | 
|---|
| 39 |     os.system("dch --ignore-dirname -v " + string.join(version, ".") + "-1") | 
|---|
| 40 |         | 
|---|
| 41 | bumpers = [spec, build_jam, index_html, jam_c, patchlevel, dch] | 
|---|
| 42 |  | 
|---|
| 43 | def main(): | 
|---|
| 44 |  | 
|---|
| 45 |     if len(sys.argv) < 2: | 
|---|
| 46 |         print "Expect new version as argument" | 
|---|
| 47 |         sys.exit(1) | 
|---|
| 48 |                  | 
|---|
| 49 |     new_version = string.split(sys.argv[1], ".") | 
|---|
| 50 |     print "Setting version to", new_version | 
|---|
| 51 |     for b in bumpers: | 
|---|
| 52 |         b(new_version) | 
|---|
| 53 |  | 
|---|
| 54 | if __name__ == '__main__': | 
|---|
| 55 |     main() | 
|---|