Annotation of embedaddon/miniupnpd/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>