55 lines
1.5 KiB
Plaintext
55 lines
1.5 KiB
Plaintext
set wshShell = CreateObject("WScript.Shell")
|
|
outfile = "./Src/svnrev.h"
|
|
svncmd = "SubWCRev ../../.. ./Src/svnrev_template.h " & outfile
|
|
svntestcmd = "SubWCRev ../../.."
|
|
hgcmd = "hg svn info"
|
|
const svn = 0
|
|
const hg = 1
|
|
|
|
set oFS = CreateObject("Scripting.fileSystemObject")
|
|
if not oFS.FileExists(outfile) then
|
|
oFS.CreateTextFile(outfile)
|
|
file_rev = 0
|
|
else
|
|
set oFile = oFS.OpenTextFile(outfile)
|
|
set re = new regexp
|
|
re.pattern = "[0-9]+"
|
|
file_rev = re.execute(oFile.readline)(0)
|
|
end if
|
|
|
|
set testexec = wshShell.exec(svntestcmd)
|
|
do while testexec.status = 0 : wscript.sleep 100 : loop
|
|
if testexec.exitcode = 0 then
|
|
testout = testexec.stdout.readall
|
|
set re = new regexp
|
|
re.pattern = "Last committed at revision [0-9]+"
|
|
cur_rev = split(re.execute(testout)(0))(4)
|
|
cur_cms = svn
|
|
else
|
|
set hgexec = wshShell.exec(hgcmd)
|
|
do while hgexec.status = 0 : wscript.sleep 100 : loop
|
|
do while true
|
|
line = hgexec.stdout.readline
|
|
if instr(line, "Revision") then
|
|
cur_rev = split(line)(1)
|
|
cur_cms = hg
|
|
exit do
|
|
end if
|
|
if hgexec.stdout.atEndofStream then
|
|
wscript.echo "Neither SVN or Hg revision info found!"
|
|
wscript.quit 1
|
|
end if
|
|
loop
|
|
end if
|
|
|
|
if file_rev = cur_rev then
|
|
wscript.echo "svnrev.h doesn't need updating"
|
|
wscript.quit 0
|
|
elseif cur_cms = svn then
|
|
ret = wshShell.run(svncmd, 0, true)
|
|
elseif cur_cms = hg then
|
|
set oFile = CreateObject("Scripting.fileSystemObject").CreateTextFile(outfile, true)
|
|
oFile.writeline("#define SVN_REV_STR """ & cur_rev & """")
|
|
else
|
|
wscript.echo "WTF, shouldn't be here!"
|
|
end if |