#!/usr/bin/python
import pwd, os, time, sys
from twisted.python import usage
email = os.environ.get('TWISTED_EMAIL', os.environ['USER']+'@twistedmatrix.com')
name = os.environ.get('TWISTED_NAME',
pwd.getpwuid(os.getuid())[4].split(',')[0])
date = '-'.join(map(str, time.gmtime()[:3]))
class Options(usage.Options):
optParameters = [
['message', 'm', ''],
['name', 'n', name],
['email', 'e', email],
['date', 'd', date],
]
def parseArgs(self, *args):
self['files'] = ' '.join(args)+': '
def postOptions(self):
self['files'] = self.get('files', '')
conf = Options()
conf.parseOptions()
entry = '''\
%(date)s %(name)s <%(email)s>
* %(files)s%(message)s
''' % conf
so_far = open("ChangeLog").read()
open('ChangeLog.tmp', 'w').write(entry+so_far)
if not conf['message']:
os.system('/usr/bin/sensible-editor ChangeLog.tmp')
if not conf['message'] and open('ChangeLog.tmp').read() == entry+so_far:
print "changelog not modified, not saving"
os.remove('ChangeLog.tmp')
else:
os.rename('ChangeLog.tmp', 'ChangeLog')
syntax highlighted by Code2HTML, v. 0.9.1