Remove wget.exe and use a small javascript instead. Had issues with some AV...
Actually, the get_file.js code was written by B.J. I have no merit. Review URL: http://codereview.chromium.org/93139 git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@14457 0039d316-1c4b-4281-b951-d872f2087c98experimental/szager/collated-output
parent
820410ca10
commit
7e4bc468c6
@ -0,0 +1,114 @@
|
|||||||
|
// Copyright (c) 2009 The Chromium Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
|
function download(sURL, sPath, verbose) {
|
||||||
|
if (verbose) {
|
||||||
|
WScript.StdOut.Write(" * GET " + sURL + "...");
|
||||||
|
}
|
||||||
|
var oResponseBody = null;
|
||||||
|
try {
|
||||||
|
oXMLHTTP = new ActiveXObject("MSXML2.ServerXMLHTTP");
|
||||||
|
} catch (e) {
|
||||||
|
WScript.StdOut.WriteLine("[-] XMLHTTP " + new Number(e.number).toHex() +
|
||||||
|
": Cannot create Active-X object (" + e.description) + ").";
|
||||||
|
WScript.Quit(1);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
oXMLHTTP.open("GET", sURL, false);
|
||||||
|
} catch (e) {
|
||||||
|
WScript.StdOut.WriteLine("[-] XMLHTTP " + new Number(e.number).toHex() +
|
||||||
|
": invalid URL.");
|
||||||
|
WScript.Quit(1);
|
||||||
|
}
|
||||||
|
var sSize = "?";
|
||||||
|
var iSize
|
||||||
|
try {
|
||||||
|
oXMLHTTP.send(null);
|
||||||
|
if (oXMLHTTP.status != 200) {
|
||||||
|
WScript.StdOut.WriteLine("[-] HTTP " + oXMLHTTP.status + " " +
|
||||||
|
oXMLHTTP.statusText);
|
||||||
|
WScript.Quit(1);
|
||||||
|
}
|
||||||
|
oResponseBody = oXMLHTTP.responseBody;
|
||||||
|
sSize = oXMLHTTP.getResponseHeader("Content-Length");
|
||||||
|
if (sSize != "") {
|
||||||
|
iSize = parseInt(sSize)
|
||||||
|
sSize = iSize.toBytes();
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
iSize = new Number(oXMLHTTP.responseText.length)
|
||||||
|
sSize = iSize.toBytes();
|
||||||
|
} catch(e) {
|
||||||
|
sSize = "unknown size";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
WScript.StdOut.WriteLine("[-] XMLHTTP " + new Number(e.number).toHex() +
|
||||||
|
": Cannot make HTTP request (" + e.description) + ")";
|
||||||
|
WScript.Quit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (verbose) {
|
||||||
|
WScript.StdOut.WriteLine("ok (" + sSize + ").");
|
||||||
|
WScript.StdOut.Write(" * Save " + sPath + "...");
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
var oAS = new ActiveXObject("ADODB.Stream");
|
||||||
|
oAS.Mode = 3; // ReadWrite
|
||||||
|
oAS.Type = 1; // 1= Binary
|
||||||
|
oAS.Open(); // Open the stream
|
||||||
|
oAS.Write(oResponseBody); // Write the data
|
||||||
|
oAS.SaveToFile(sPath, 2); // Save to our destination
|
||||||
|
oAS.Close();
|
||||||
|
} catch(e) {
|
||||||
|
WScript.StdOut.WriteLine("[-] ADODB.Stream " + new Number(e.number).toHex() +
|
||||||
|
": Cannot save file (" + e.description + ")");
|
||||||
|
WScript.Quit(1);
|
||||||
|
}
|
||||||
|
if (typeof(iSize) != undefined) {
|
||||||
|
oFSO = WScript.CreateObject("Scripting.FileSystemObject")
|
||||||
|
oFile = oFSO.GetFile(sPath)
|
||||||
|
if (oFile.Size < iSize) {
|
||||||
|
WScript.StdOut.WriteLine("[-] File only partially downloaded.");
|
||||||
|
WScript.Quit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (verbose) {
|
||||||
|
WScript.StdOut.WriteLine("ok.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Number.prototype.isInt = function Number_isInt() {
|
||||||
|
return this % 1 == 0;
|
||||||
|
};
|
||||||
|
Number.prototype.toBytes = function Number_toBytes() {
|
||||||
|
// Returns a "pretty" string representation of a number of bytes:
|
||||||
|
var aUnits = ["KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
|
||||||
|
var sUnit = "bytes";
|
||||||
|
var iLimit = 1;
|
||||||
|
while(this > iLimit * 1100 && aUnits.length > 0) {
|
||||||
|
iLimit *= 1024;
|
||||||
|
sUnit = aUnits.shift();
|
||||||
|
}
|
||||||
|
return (Math.round(this * 100 / iLimit) / 100).toString() + " " + sUnit;
|
||||||
|
};
|
||||||
|
Number.prototype.toHex = function Number_toHex(nLength) {
|
||||||
|
if (arguments.length == 0) nLength = 1;
|
||||||
|
if (typeof(nLength) != "number" && !(nLength instanceof Number)) {
|
||||||
|
throw Exception("Length must be a positive integer larger than 0.", TypeError, 0);
|
||||||
|
}
|
||||||
|
if (nLength < 1 || !nLength.isInt()) {
|
||||||
|
throw Exception("Length must be a positive integer larger than 0.", "RangeError", 0);
|
||||||
|
}
|
||||||
|
var sResult = (this + (this < 0 ? 0x100000000 : 0)).toString(16);
|
||||||
|
while (sResult.length < nLength) sResult = "0" + sResult;
|
||||||
|
return sResult;
|
||||||
|
};
|
||||||
|
|
||||||
|
if (WScript.Arguments.length != 2) {
|
||||||
|
WScript.StdOut.Write("Incorrect arguments to download.js")
|
||||||
|
} else {
|
||||||
|
download(WScript.Arguments(0), WScript.Arguments(1), false);
|
||||||
|
}
|
Binary file not shown.
Loading…
Reference in New Issue