Added script to extract stub for “release notes”

- gets last two commit hashes for the version file, gets the commit logs between those versions and parses out the messages
This commit is contained in:
Phil Nash 2014-04-25 06:10:50 +01:00
parent 174049532e
commit 18845dab7f
2 changed files with 51 additions and 1 deletions

33
scripts/releaseNotes.py Normal file
View File

@ -0,0 +1,33 @@
import os
from scriptCommon import catchPath
from scriptCommon import runAndCapture
rootPath = os.path.join( catchPath, 'include/' )
versionPath = os.path.join( rootPath, "internal/catch_version.hpp" )
hashes = runAndCapture( ['git', 'log', '-2', '--format="%H"', versionPath] )
lines = runAndCapture( ['git', 'log', hashes[1] + ".." + hashes[0], catchPath] )
prevLine = ""
messages = []
dates = []
for line in lines:
if line.startswith( "commit"):
pass
elif line.startswith( "Author:"):
pass
elif line.startswith( "Date:"):
dates.append( line[5:].lstrip() )
pass
elif line == "" and prevLine == "":
pass
else:
messages.append( line )
prevLine = line
print "All changes between {0} and {1}:\n".format( dates[-1], dates[0] )
for line in messages:
print line

View File

@ -1,4 +1,21 @@
import os
import sys
import subprocess
catchPath = os.path.dirname(os.path.realpath( os.path.dirname(sys.argv[0])))
catchPath = os.path.dirname(os.path.realpath( os.path.dirname(sys.argv[0])))
def runAndCapture( args ):
child = subprocess.Popen(" ".join( args ), shell=True, stdout=subprocess.PIPE)
lines = []
line = ""
while True:
out = child.stdout.read(1)
if out == '' and child.poll() != None:
break
if out != '':
if out == '\n':
lines.append( line )
line = ""
else:
line = line + out
return lines