summaryrefslogtreecommitdiff
path: root/windows-tap/build/zip.js
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2013-08-15 15:52:52 -0400
committerAdam Ierymenko <adam.ierymenko@gmail.com>2013-08-15 15:52:52 -0400
commitd7bd3e37cbf63b3862f3e001c94c5f23e965a7b5 (patch)
tree8b148fe3c676892373cbab22146a86a815677d67 /windows-tap/build/zip.js
parentb23748aa5a10a61b1dd5f5598c7577c8c2142aaf (diff)
downloadinfinitytier-d7bd3e37cbf63b3862f3e001c94c5f23e965a7b5.tar.gz
infinitytier-d7bd3e37cbf63b3862f3e001c94c5f23e965a7b5.zip
Add a fork of tap-windows from OpenVPN, will be customized.
Diffstat (limited to 'windows-tap/build/zip.js')
-rw-r--r--windows-tap/build/zip.js74
1 files changed, 74 insertions, 0 deletions
diff --git a/windows-tap/build/zip.js b/windows-tap/build/zip.js
new file mode 100644
index 00000000..6550d8a7
--- /dev/null
+++ b/windows-tap/build/zip.js
@@ -0,0 +1,74 @@
+/*
+ * zip.js - a simple zip implementation in jscript.
+ *
+ * Copyright (C) 2008-2012 Alon Bar-Lev <alon.barlev@gmail.com>
+ *
+ * BSD License
+ * ============
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * o Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * o Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * o Neither the name of the Alon Bar-Lev nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+var ForReading = 0;
+var ForWriting = 1;
+var fso = new ActiveXObject("Scripting.FileSystemObject");
+
+function zip(source, destination) {
+ try {
+ var f = OpenTextFile(destination, ForReading);
+ f.Close();
+ }
+ catch(e) {
+ var f = fso.CreateTextFile(destination, ForWriting);
+ var zipheader = "PK" + String.fromCharCode(5) + String.fromCharCode(6);
+ for (var i=0;i<18;i++) {
+ zipheader += String.fromCharCode(0);
+ }
+ f.Write(zipheader);
+ f.Close();
+ }
+
+ var shell = new ActiveXObject("Shell.Application");
+ var source = shell.NameSpace(fso.GetAbsolutePathName(source));
+ var destination = shell.NameSpace(fso.GetAbsolutePathName(destination));
+
+ destination.CopyHere(source.Items(), 4);
+ while(source.Items().Count != destination.Items().Count) {
+ WScript.Sleep(1000);
+ }
+}
+
+var index = 0;
+var source = WScript.Arguments(index++);
+var destination = WScript.Arguments(index++);
+try {
+ zip(source, destination);
+ WScript.Quit(0);
+}
+catch(e) {
+ WScript.Echo("ERROR: Cannot zip '" + destination + "'.");
+ WScript.Quit(1);
+}
+