mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-22 13:26:10 +01:00
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:
parent
174049532e
commit
18845dab7f
33
scripts/releaseNotes.py
Normal file
33
scripts/releaseNotes.py
Normal 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
|
@ -1,4 +1,21 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
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
|
Loading…
Reference in New Issue
Block a user