0
0
mirror of https://github.com/mongodb/mongo.git synced 2024-11-30 09:06:21 +01:00
mongodb/buildscripts/frob_version.py

64 lines
1.9 KiB
Python
Executable File

#!/usr/bin/python
import tempfile
import sys
import re
import os
def opentemp(basename):
return tempfile.NamedTemporaryFile('w', -1, ".XXXXXX", basename, '.', False)
def frob_debian_changelog(version):
fname = 'debian/changelog'
with opentemp(fname) as o:
with open(fname) as i:
lineno = 0
for line in i:
if lineno == 0:
newline = re.sub(r'\([^)]*\)', '('+version+')', line)
o.write(newline)
else:
o.write(line)
os.rename(o.name, fname)
def frob_rpm_spec(version):
fname = 'rpm/mongo.spec'
with opentemp(fname) as o:
with open(fname) as i:
frobbed = False
for line in i:
if frobbed:
o.write(line)
else:
if line.find('Version:') == 0:
print >> o, 'Version: ' + version
frobbed = True
else:
o.write(line)
os.rename(o.name, fname)
def frob_stdafx_cpp(version):
fname = 'stdafx.cpp'
with opentemp(fname) as o:
with open(fname) as i:
frobbed = False
for line in i:
if frobbed:
o.write(line)
else:
if re.search(r'const.*char.*versionString\[\].*=', line):
o.write(' const char versionString[] = "%s";' version)
else:
o.write(line)
os.rename(o.name, fname)
(progname, version) = sys.argv
if version is None:
print >> sys.stderr, 'usage: %s VERSION' % progname
sys.exit(1)
frob_debian_changelog(version)
frob_rpm_spec(version)
## I don't yet know what-all cares about the versionString inside the
## mongo code, so I'm not actually calling this yet.
# frob_stdafx_cpp(version)