FS-4219 -- resolve windows version string. thanks Peter

This commit is contained in:
Jeff Lenk 2012-08-10 07:47:10 -05:00 committed by Ken Rice
parent dbbe5ed1e0
commit d1db17b486
1 changed files with 50 additions and 18 deletions

View File

@ -314,6 +314,31 @@ Function GetTimeUTC()
End Function End Function
Function GetWeekDay(DateTime)
DayOfWeek = DatePart("w", DateTime)
Select Case DayOfWeek
Case 1 GetWeekDay = "Sun"
Case 2 GetWeekDay = "Mon"
Case 3 GetWeekDay = "Tue"
Case 4 GetWeekDay = "Wed"
Case 5 GetWeekDay = "Thu"
Case 6 GetWeekDay = "Fri"
Case 7 GetWeekDay = "Sat"
End Select
End Function
Function GetMonthName(DateTime)
Val = MonthName(Month(DateTime), True)
Val = UCase(Left(Val, 1)) & Mid(Val, 2, 4)
GetMonthName = Val
End Function
Sub CreateVersion(tmpFolder, VersionDir, includebase, includedest) Sub CreateVersion(tmpFolder, VersionDir, includebase, includedest)
Dim oExec Dim oExec
@ -321,6 +346,7 @@ Sub CreateVersion(tmpFolder, VersionDir, includebase, includedest)
strVerMinor = FindVersionStringInConfigure(VersionDir & "configure.in", "SWITCH_VERSION_MINOR") strVerMinor = FindVersionStringInConfigure(VersionDir & "configure.in", "SWITCH_VERSION_MINOR")
strVerMicro = FindVersionStringInConfigure(VersionDir & "configure.in", "SWITCH_VERSION_MICRO") strVerMicro = FindVersionStringInConfigure(VersionDir & "configure.in", "SWITCH_VERSION_MICRO")
strVerRev = FindVersionStringInConfigure(VersionDir & "configure.in", "SWITCH_VERSION_REVISION") strVerRev = FindVersionStringInConfigure(VersionDir & "configure.in", "SWITCH_VERSION_REVISION")
strVerHuman = FindVersionStringInConfigure(VersionDir & "configure.in", "SWITCH_VERSION_REVISION_HUMAN")
'Set version to the one reported by configure.in 'Set version to the one reported by configure.in
If strVerRev <> "" Then If strVerRev <> "" Then
@ -329,6 +355,7 @@ Sub CreateVersion(tmpFolder, VersionDir, includebase, includedest)
Dim sLastFile Dim sLastFile
Const ForReading = 1 Const ForReading = 1
Const ShowUnclean = False 'Don't show unclean state for now
'Try To read revision from git 'Try To read revision from git
If FSO.FolderExists(VersionDir & ".git") Then If FSO.FolderExists(VersionDir & ".git") Then
@ -337,31 +364,39 @@ Sub CreateVersion(tmpFolder, VersionDir, includebase, includedest)
If IsNumeric(strFromProc) Then If IsNumeric(strFromProc) Then
lastChangedDateTime = DateAdd("s", strFromProc, "01/01/1970 00:00:00") lastChangedDateTime = DateAdd("s", strFromProc, "01/01/1970 00:00:00")
strLastCommit = YEAR(lastChangedDateTime) & Pd(Month(lastChangedDateTime), 2) & Pd(DAY(lastChangedDateTime), 2) & "T" & Pd(Hour(lastChangedDateTime), 2) & Pd(Minute(lastChangedDateTime), 2) & Pd(Second(lastChangedDateTime), 2) & "Z" strLastCommit = YEAR(lastChangedDateTime) & Pd(Month(lastChangedDateTime), 2) & Pd(DAY(lastChangedDateTime), 2) & "T" & Pd(Hour(lastChangedDateTime), 2) & Pd(Minute(lastChangedDateTime), 2) & Pd(Second(lastChangedDateTime), 2) & "Z"
strLastCommitHuman = GetWeekDay(lastChangedDateTime) & ", " & Pd(DAY(lastChangedDateTime), 2) & " " & GetMonthName(lastChangedDateTime) & " " & YEAR(lastChangedDateTime) & " " & Pd(Hour(lastChangedDateTime), 2) & ":" & Pd(Minute(lastChangedDateTime), 2) & ":" & Pd(Second(lastChangedDateTime), 2) & " Z"
Else Else
strLastCommit = "UNKNOWN" strLastCommit = ""
strLastCommitHuman = ""
End If End If
'Get revision hash 'Get revision hash
strRevision = ExecAndGetResult(tmpFolder, VersionDir, "git rev-list -n1 --abbrev=10 --abbrev-commit HEAD") strRevision = ExecAndGetResult(tmpFolder, VersionDir, "git rev-list -n1 --abbrev=10 --abbrev-commit HEAD")
If strRevision = "" Then If strLastCommit <> "" And strLastCommitHuman <> "" And strRevision <> "" Then
strRevision = "UNKNOWN"
End If
'Bild version string 'Bild version string
strGitVer = "git~" & strLastCommit & "~" & strRevision strGitVer = "git~" & strLastCommit & "~" & strRevision
strVerHuman = "; git at commit " & strRevision & " on " & strLastCommitHuman
'Check for local changes, if found, append to git revision string 'Check for local changes, if found, append to git revision string
If ShowUnclean Then
If ExecAndGetExitCode(tmpFolder, VersionDir, "git diff-index --quiet HEAD") <> 0 Then If ExecAndGetExitCode(tmpFolder, VersionDir, "git diff-index --quiet HEAD") <> 0 Then
lastChangedDateTime = GetTimeUTC() lastChangedDateTime = GetTimeUTC()
strGitVer = strGitVer & "+unclean~" & YEAR(lastChangedDateTime) & Pd(Month(lastChangedDateTime), 2) & Pd(DAY(lastChangedDateTime), 2) & "T" & Pd(Hour(lastChangedDateTime), 2) & Pd(Minute(lastChangedDateTime), 2) & Pd(Second(lastChangedDateTime), 2) & "Z" strGitVer = strGitVer & "+unclean~" & YEAR(lastChangedDateTime) & Pd(Month(lastChangedDateTime), 2) & Pd(DAY(lastChangedDateTime), 2) & "T" & Pd(Hour(lastChangedDateTime), 2) & Pd(Minute(lastChangedDateTime), 2) & Pd(Second(lastChangedDateTime), 2) & "Z"
End If End If
End If
Else
strGitVer = ""
strVerHuman = ""
End If
If strVerRev = "" Then If strVerRev = "" Then
VERSION=strGitVer VERSION=strGitVer
Else Else
If strGitVer <> "" Then
VERSION=VERSION & "+" & strGitVer VERSION=VERSION & "+" & strGitVer
End If End If
End If
sLastVersion = "" sLastVersion = ""
Set sLastFile = FSO.OpenTextFile(tmpFolder & "lastversion", ForReading, true, OpenAsASCII) Set sLastFile = FSO.OpenTextFile(tmpFolder & "lastversion", ForReading, true, OpenAsASCII)
@ -371,13 +406,9 @@ Sub CreateVersion(tmpFolder, VersionDir, includebase, includedest)
sLastFile.Close sLastFile.Close
End If End If
If VERSION = "" Then If VERSION & " " & strVerHuman <> sLastVersion Then
VERSION = "-UNKNOWN"
End If
If VERSION <> sLastVersion Then
Set MyFile = fso.CreateTextFile(tmpFolder & "lastversion", True) Set MyFile = fso.CreateTextFile(tmpFolder & "lastversion", True)
MyFile.WriteLine(VERSION) MyFile.WriteLine(VERSION & " " & strVerHuman)
MyFile.Close MyFile.Close
FSO.CopyFile includebase, includedest, true FSO.CopyFile includebase, includedest, true
@ -385,6 +416,7 @@ Sub CreateVersion(tmpFolder, VersionDir, includebase, includedest)
FindReplaceInFile includedest, "@SWITCH_VERSION_MAJOR@", strVerMajor FindReplaceInFile includedest, "@SWITCH_VERSION_MAJOR@", strVerMajor
FindReplaceInFile includedest, "@SWITCH_VERSION_MINOR@", strVerMinor FindReplaceInFile includedest, "@SWITCH_VERSION_MINOR@", strVerMinor
FindReplaceInFile includedest, "@SWITCH_VERSION_MICRO@", strVerMicro FindReplaceInFile includedest, "@SWITCH_VERSION_MICRO@", strVerMicro
FindReplaceInFile includedest, "@SWITCH_VERSION_REVISION_HUMAN@", strVerHuman
End If End If
End Sub End Sub