text: #!/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)
  