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

This commit is contained in:
Jeff Lenk 2012-08-10 07:47:10 -05:00
parent 72f1d392fb
commit 659c06d356

View File

@ -314,6 +314,31 @@ Function GetTimeUTC()
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)
Dim oExec
@ -321,6 +346,7 @@ Sub CreateVersion(tmpFolder, VersionDir, includebase, includedest)
strVerMinor = FindVersionStringInConfigure(VersionDir & "configure.in", "SWITCH_VERSION_MINOR")
strVerMicro = FindVersionStringInConfigure(VersionDir & "configure.in", "SWITCH_VERSION_MICRO")
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
If strVerRev <> "" Then
@ -329,6 +355,7 @@ Sub CreateVersion(tmpFolder, VersionDir, includebase, includedest)
Dim sLastFile
Const ForReading = 1
Const ShowUnclean = False 'Don't show unclean state for now
'Try To read revision from git
If FSO.FolderExists(VersionDir & ".git") Then
@ -337,30 +364,38 @@ Sub CreateVersion(tmpFolder, VersionDir, includebase, includedest)
If IsNumeric(strFromProc) Then
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"
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
strLastCommit = "UNKNOWN"
strLastCommit = ""
strLastCommitHuman = ""
End If
'Get revision hash
strRevision = ExecAndGetResult(tmpFolder, VersionDir, "git rev-list -n1 --abbrev=10 --abbrev-commit HEAD")
If strRevision = "" Then
strRevision = "UNKNOWN"
End If
If strLastCommit <> "" And strLastCommitHuman <> "" And strRevision <> "" Then
'Bild version string
strGitVer = "git~" & strLastCommit & "~" & strRevision
strVerHuman = "; git at commit " & strRevision & " on " & strLastCommitHuman
'Bild version string
strGitVer="git~" & strLastCommit & "~" & strRevision
'Check for local changes, if found, append to git revision string
If ExecAndGetExitCode(tmpFolder, VersionDir, "git diff-index --quiet HEAD") <> 0 Then
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"
'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
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"
End If
End If
Else
strGitVer = ""
strVerHuman = ""
End If
If strVerRev = "" Then
VERSION=strGitVer
Else
VERSION=VERSION & "+" & strGitVer
If strGitVer <> "" Then
VERSION=VERSION & "+" & strGitVer
End If
End If
sLastVersion = ""
@ -371,13 +406,9 @@ Sub CreateVersion(tmpFolder, VersionDir, includebase, includedest)
sLastFile.Close
End If
If VERSION = "" Then
VERSION = "-UNKNOWN"
End If
If VERSION <> sLastVersion Then
If VERSION & " " & strVerHuman <> sLastVersion Then
Set MyFile = fso.CreateTextFile(tmpFolder & "lastversion", True)
MyFile.WriteLine(VERSION)
MyFile.WriteLine(VERSION & " " & strVerHuman)
MyFile.Close
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_MINOR@", strVerMinor
FindReplaceInFile includedest, "@SWITCH_VERSION_MICRO@", strVerMicro
FindReplaceInFile includedest, "@SWITCH_VERSION_REVISION_HUMAN@", strVerHuman
End If
End Sub