Annotation of embedaddon/miniupnpc/msvc/genminiupnpcstrings.vbs, revision 1.1.1.1
1.1 misho 1: ' VBScript to generate miniupnpcstrings.h
2: ' Copyright 2018 Thomas Bernard
3: 'Set WshShell = CreateObject("WScript.Shell")
4: Set FSO = CreateObject("Scripting.FileSystemObject")
5: versionfile = "..\version"
6: infile = "..\miniupnpcstrings.h.in"
7: outfile = "..\miniupnpcstrings.h"
8: outfilerc = "..\rc_version.h"
9:
10: On Error Resume Next
11:
12: 'Wscript.Echo revision
13:
14: Err.Clear
15: Set f = FSO.OpenTextFile(versionfile, 1, False) ' 1 = Read
16: If Err.Number = 0 Then
17: version = f.ReadLine
18: f.Close
19: Else
20: ' Exit error
21: WScript.Quit 1
22: End If
23:
24: os_version = "0.0.0"
25: strComputer = "."
26: Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
27: Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
28: For Each objOperatingSystem in colOperatingSystems
29: 'Wscript.Echo objOperatingSystem.Caption & " -- "
30: os_version = objOperatingSystem.Version
31: Next
32:
33: 'Wscript.Echo os_version
34:
35: Dim array
36: needWrite = True
37:
38: ' First Check if the file already contains the right versions
39: Err.Clear
40: Set f_in = FSO.OpenTextFile(outfile, 1, False)
41: If Err.Number = 0 Then
42: old_version = ""
43: old_os_version = ""
44: Do Until f_in.AtEndOfStream
45: line = f_in.ReadLine
46: If Len(line) > 0 Then
47: array = Split(line, " ")
48: If UBound(array) >= 2 And array(0) = "#define" Then
49: If array(1) = "OS_STRING" Then
50: old_os_version = Replace(array(2), Chr(34), "")
51: ElseIf array(1) = "MINIUPNPC_VERSION_STRING" Then
52: old_version = Replace(array(2), Chr(34), "")
53: End if
54: End if
55: End If
56: Loop
57: f_in.Close
58: If old_version = version And old_os_version = "MSWindows/" & os_version Then
59: needWrite = False
60: Else
61: needWrite = True
62: End If
63: End If
64:
65: If Not needWrite Then
66: ' check files dates
67: Set fIn1 = FSO.GetFile(versionfile)
68: Set fIn2 = FSO.GetFile(infile)
69: Set fOut = FSO.GetFile(outfile)
70: If DateDiff("s", fIn1.DateLastModified, fOut.DateLastModified) < 0 Then
71: needWrite = True
72: End If
73: If DateDiff("s", fIn2.DateLastModified, fOut.DateLastModified) < 0 Then
74: needWrite = True
75: End If
76: End If
77:
78: If Not needWrite Then
79: ' nothing to do
80: WScript.Quit 0
81: End if
82:
83: ' generate the file
84: Err.Clear
85: Set f_in = FSO.OpenTextFile(infile, 1, False)
86: If Err.Number = 0 Then
87: Set f_out = FSO.OpenTextFile(outfile, 2, True) ' 2 = Write
88: Do Until f_in.AtEndOfStream
89: line = f_in.ReadLine
90: If Len(line) > 0 Then
91: array = Split(line, " ")
92: If UBound(array) >= 2 And array(0) = "#define" Then
93: If array(1) = "OS_STRING" Then
94: line = "#define OS_STRING " & Chr(34) & "MSWindows/" & os_version & Chr(34)
95: ElseIf array(1) = "MINIUPNPC_VERSION_STRING" Then
96: line = "#define MINIUPNPC_VERSION_STRING " & Chr(34) & version & Chr(34)
97: End if
98: End if
99: End If
100: f_out.WriteLine line
101: Loop
102: f_in.Close
103: f_out.Close
104: End If
105:
106: Set f_out = FSO.OpenTextFile(outfilerc, 2, True) ' 2 = Write
107: f_out.WriteLine "#define LIBMINIUPNPC_DOTTED_VERSION " & Chr(34) & version & Chr(34)
108: ver = Split(version, ".")
109: f_out.WriteLine "#define LIBMINIUPNPC_MAJOR_VERSION " & ver(0)
110: f_out.WriteLine "#define LIBMINIUPNPC_MINOR_VERSION " & ver(1)
111: f_out.WriteLine "#define LIBMINIUPNPC_MICRO_VERSION " & ver(2)
112: f_out.Close
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>