[Freeswitch-svn] [commit] r2405 - freeswitch/trunk/libs/win32

Freeswitch SVN mikej at freeswitch.org
Sun Aug 27 00:21:28 EDT 2006


Author: mikej
Date: Sun Aug 27 00:21:27 2006
New Revision: 2405

Modified:
   freeswitch/trunk/libs/win32/util.vbs

Log:
make downloads work without adodb.stream in case it fails.  Thanks to Dave Horner for the inspiration on this.

Modified: freeswitch/trunk/libs/win32/util.vbs
==============================================================================
--- freeswitch/trunk/libs/win32/util.vbs	(original)
+++ freeswitch/trunk/libs/win32/util.vbs	Sun Aug 27 00:21:27 2006
@@ -1,3 +1,9 @@
+'
+' Contributor(s):
+' Michael Jerris <mike at jerris.com>
+' David A. Horner http://dave.thehorners.com
+'----------------------------------------------
+
 'On Error Resume Next
 ' **************
 ' Initialization
@@ -7,13 +13,28 @@
 Set FSO = CreateObject("Scripting.FileSystemObject")
 Set WshSysEnv = WshShell.Environment("SYSTEM")
 Set xml = CreateObject("Microsoft.XMLHTTP")
+Dim UseWgetEXE
+
+On Error Resume Next
 Set oStream = CreateObject("Adodb.Stream")
+On Error Goto 0
+
+If Not IsObject(oStream)  Then
+	wscript.echo("Failed to create Adodb.Stream, using alternative download method.")
+	UseWgetEXE=true
+Else
+	UseWgetEXE=false
+End If
+
 Set objArgs = WScript.Arguments
 quote=Chr(34)
 ScriptDir=Left(WScript.ScriptFullName,Len(WScript.ScriptFullName)-Len(WScript.ScriptName))
 UtilsDir=Showpath(ScriptDir)
 ToolsBase="http://svn.freeswitch.org/downloads/win32/"
 
+If UseWgetEXE Then
+	GetWgetEXE UtilsDir
+End If
 
 GetCompressionTools UtilsDir
 
@@ -58,6 +79,14 @@
 	End If	
 End Sub
 
+Sub GetWgetEXE(DestFolder)
+	Dim oExec
+	If Right(DestFolder, 1) <> "\" Then DestFolder = DestFolder & "\" End If
+	If Not FSO.FileExists(DestFolder & "wget.exe") Then 
+		Slow_Wget ToolsBase & "wget.exe", DestFolder
+	End If	
+End Sub
+
 Sub UnCompress(Archive, DestFolder)
 	wscript.echo("Extracting: " & Archive)
 	Set MyFile = fso.CreateTextFile(UtilsDir & "tmpcmd.Bat", True)
@@ -100,19 +129,51 @@
 	If Right(DestFolder, 1) <> "\" Then DestFolder = DestFolder & "\" End If
 
 	Wscript.echo("Downloading: " & URL)
+	
+If UseWgetEXE Then
+	Set MyFile = fso.CreateTextFile(UtilsDir & "tmpcmd.Bat", True)
+	MyFile.WriteLine("@cd " & quote & DestFolder & quote)
+	MyFile.WriteLine("@" & quote & UtilsDir & "wget.exe" & quote & " " & URL)
+	MyFile.Close
+	Set oExec = WshShell.Exec(UtilsDir & "tmpcmd.Bat")
+	Do
+		WScript.Echo OExec.StdOut.ReadLine()
+	Loop While Not OExec.StdOut.atEndOfStream
+
+Else
 	xml.Open "GET", URL, False
 	xml.Send
 	
 	Const adTypeBinary = 1
 	Const adSaveCreateOverWrite = 2
 	Const adSaveCreateNotExist = 1 
-	
+
 	oStream.type = adTypeBinary
 	oStream.open
 	oStream.write xml.responseBody
 	oStream.savetofile DestFolder & filename, adSaveCreateOverWrite
-	
 	oStream.close
+End If
+
+End Sub
+
+Sub Slow_Wget(URL, DestFolder)
+	StartPos = InstrRev(URL, "/", -1, 1)   
+	strlength = Len(URL)
+	filename=Right(URL,strlength-StartPos)
+	If Right(DestFolder, 1) <> "\" Then DestFolder = DestFolder & "\" End If
+
+	Wscript.echo("Downloading: " & URL)
+	xml.Open "GET", URL, False
+	xml.Send
+	
+	const ForReading = 1 , ForWriting = 2 , ForAppending = 8 
+Set MyFile = fso.OpenTextFile(DestFolder & filename ,ForWriting, True)
+For i = 1 to lenb(xml.responseBody)
+ MyFile.write Chr(Ascb(midb(xml.responseBody,i,1)))
+Next
+MyFile.Close()
+
 End Sub
 
 Function Showpath(folderspec)



More information about the Freeswitch-svn mailing list