mirror of
https://github.com/ZeroTier/ZeroTierOne
synced 2025-07-16 10:03:14 -07:00
Add a fork of tap-windows from OpenVPN, will be customized.
This commit is contained in:
parent
b23748aa5a
commit
d7bd3e37cb
40 changed files with 7658 additions and 0 deletions
118
windows-tap/build/msvc-generate.js
Normal file
118
windows-tap/build/msvc-generate.js
Normal file
|
@ -0,0 +1,118 @@
|
|||
/*
|
||||
* msvc-generate.js - string transformation
|
||||
*
|
||||
* 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 = 1;
|
||||
var fso = new ActiveXObject("Scripting.FileSystemObject");
|
||||
var input = "nul";
|
||||
var output = "nul";
|
||||
var files = new Array();
|
||||
var env = new Array();
|
||||
|
||||
function initialize() {
|
||||
for (var i=0;i<WScript.Arguments.length;i++) {
|
||||
var arg = WScript.Arguments(i);
|
||||
if (arg.match(/^--input=(.*)$/)) {
|
||||
input=RegExp.$1;
|
||||
}
|
||||
else if (arg.match(/^--output=(.*)$/)) {
|
||||
output=RegExp.$1;
|
||||
}
|
||||
else if (arg.match(/^--config=(.*)$/)) {
|
||||
files.push(RegExp.$1);
|
||||
}
|
||||
else if (arg.match(/^--var=([^=]*)=(.*)$/)) {
|
||||
env[RegExp.$1] = RegExp.$2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function process_config(vars, file) {
|
||||
try {
|
||||
var fin = fso.OpenTextFile(file, ForReading);
|
||||
|
||||
while (!fin.AtEndOfStream) {
|
||||
var content = fin.ReadLine();
|
||||
if (content.match(/^[ \t]*define\(\[(.*)\],[ \t]*\[(.*)\]\)[ \t]*/)) {
|
||||
vars[RegExp.$1] = RegExp.$2;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(e) {
|
||||
throw new Error(1, "Cannot process '" + file + "'.");
|
||||
}
|
||||
}
|
||||
|
||||
function process_file(vars, input, output) {
|
||||
var fin = fso.OpenTextFile(input, ForReading);
|
||||
var fout = fso.CreateTextFile(output);
|
||||
var content = fin.ReadAll();
|
||||
|
||||
for (var i in vars) {
|
||||
content = content.replace(new RegExp("@"+i+"@", "g"), vars[i]);
|
||||
}
|
||||
|
||||
fout.Write(content);
|
||||
}
|
||||
|
||||
function build_vars() {
|
||||
var vars = new Array();
|
||||
for (var f in files) {
|
||||
process_config(vars, files[f]);
|
||||
}
|
||||
for (var e in env) {
|
||||
vars[e] = env[e];
|
||||
}
|
||||
return vars;
|
||||
}
|
||||
|
||||
function main() {
|
||||
try {
|
||||
initialize();
|
||||
|
||||
var vars = build_vars();
|
||||
|
||||
process_file(
|
||||
vars,
|
||||
input,
|
||||
output
|
||||
);
|
||||
|
||||
WScript.Quit(0);
|
||||
}
|
||||
catch(e) {
|
||||
WScript.Echo("ERROR: when procssing " + output + ": " + e.description);
|
||||
WScript.Quit(1);
|
||||
}
|
||||
}
|
||||
|
||||
main();
|
Loading…
Add table
Add a link
Reference in a new issue