mirror of
https://github.com/mongodb/mongo.git
synced 2024-11-30 00:56:44 +01:00
70 lines
2.1 KiB
Python
70 lines
2.1 KiB
Python
#!/usr/bin/env python
|
|
|
|
from __future__ import with_statement
|
|
import tempfile
|
|
import sys
|
|
import re
|
|
import os
|
|
|
|
def opentemp(basename):
|
|
# The following doesn't work in python before 2.6
|
|
# return tempfile.NamedTemporaryFile('w', -1, ".XXXXXX", basename, '.', False)
|
|
fname = basename +".TMP"
|
|
if os.path.exists(fname):
|
|
raise "not clobbering file %s" % fname
|
|
return open(fname, 'w')
|
|
|
|
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)
|