~ubuntu-branches/ubuntu/saucy/openvpn/saucy-proposed

« back to all changes in this revision

Viewing changes to build/msvc/msvc-generate/msvc-generate.js

  • Committer: Package Import Robot
  • Author(s): Stéphane Graber
  • Date: 2013-05-24 17:42:45 UTC
  • mfrom: (1.1.19) (10.2.22 sid)
  • Revision ID: package-import@ubuntu.com-20130524174245-g9y6wlforycufqy5
Tags: 2.3.1-2ubuntu1
* Merge from Debian unstable. Remaining changes:
  - debian/openvpn.init.d:
    + Do not use start-stop-daemon and </dev/null to avoid blocking boot.
    + Show per-VPN result messages.
    + Add "--script-security 2" by default for backwards compatabliity.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * msvc-generate.js  - string transformation
 
3
 *
 
4
 * Copyright (C) 2008-2012 Alon Bar-Lev <alon.barlev@gmail.com>
 
5
 *
 
6
 * BSD License
 
7
 * ============
 
8
 * Redistribution and use in source and binary forms, with or without
 
9
 * modification, are permitted provided that the following conditions are met:
 
10
 *
 
11
 *     o Redistributions of source code must retain the above copyright notice,
 
12
 *       this list of conditions and the following disclaimer.
 
13
 *     o Redistributions in binary form must reproduce the above copyright
 
14
 *       notice, this list of conditions and the following disclaimer in the
 
15
 *       documentation and/or other materials provided with the distribution.
 
16
 *     o Neither the name of the Alon Bar-Lev nor the names of its
 
17
 *       contributors may be used to endorse or promote products derived from
 
18
 *       this software without specific prior written permission.
 
19
 *
 
20
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 
21
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 
22
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 
23
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 
24
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 
25
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 
26
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 
27
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 
28
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 
29
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 
30
 * POSSIBILITY OF SUCH DAMAGE.
 
31
 *
 
32
 */
 
33
 
 
34
var ForReading = 1;
 
35
var fso = new ActiveXObject("Scripting.FileSystemObject");
 
36
var input = "nul";
 
37
var output = "nul";
 
38
var files = new Array();
 
39
var env = new Array();
 
40
 
 
41
function initialize() {
 
42
        for (var i=0;i<WScript.Arguments.length;i++) {
 
43
                var arg = WScript.Arguments(i);
 
44
                if (arg.match(/^--input=(.*)$/)) {
 
45
                        input=RegExp.$1;
 
46
                }
 
47
                else if (arg.match(/^--output=(.*)$/)) {
 
48
                        output=RegExp.$1;
 
49
                }
 
50
                else if (arg.match(/^--config=(.*)$/)) {
 
51
                        files.push(RegExp.$1);
 
52
                }
 
53
                else if (arg.match(/^--var=([^=]*)=(.*)$/)) {
 
54
                        env[RegExp.$1] = RegExp.$2;
 
55
                }
 
56
        }
 
57
}
 
58
 
 
59
function process_config(vars, file) {
 
60
        try {
 
61
                var fin = fso.OpenTextFile(file, ForReading);
 
62
 
 
63
                while (!fin.AtEndOfStream) {
 
64
                        var content = fin.ReadLine();
 
65
                        if (content.match(/^[ \t]*define\(\[(.*)\],[ \t]*\[(.*)\]\)[ \t]*/)) {
 
66
                                vars[RegExp.$1] = RegExp.$2;
 
67
                        }
 
68
                }
 
69
        }
 
70
        catch(e) {
 
71
                throw new Error(1, "Cannot process '" + file + "'.");
 
72
        }
 
73
}
 
74
 
 
75
function process_file(vars, input, output) {
 
76
        var fin = fso.OpenTextFile(input, ForReading);
 
77
        var fout = fso.CreateTextFile(output);
 
78
        var content = fin.ReadAll();
 
79
 
 
80
        for (var i in vars) {
 
81
                content = content.replace(new RegExp("@"+i+"@", "g"), vars[i]);
 
82
        }
 
83
 
 
84
        fout.Write(content);
 
85
}
 
86
 
 
87
function build_vars() {
 
88
        var vars = new Array();
 
89
        for (var f in files) {
 
90
                process_config(vars, files[f]);
 
91
        }
 
92
        for (var e in env) {
 
93
                vars[e] = env[e];
 
94
        }
 
95
        return vars;
 
96
}
 
97
 
 
98
function main() {
 
99
        try {
 
100
                initialize();
 
101
 
 
102
                var vars = build_vars();
 
103
 
 
104
                process_file(
 
105
                        vars,
 
106
                        input,
 
107
                        output
 
108
                );
 
109
 
 
110
                WScript.Quit(0);
 
111
        }
 
112
        catch(e) {
 
113
                WScript.Echo("ERROR: when procssing " + output + ": " + e.description);
 
114
                WScript.Quit(1);
 
115
        }
 
116
}
 
117
 
 
118
main();