Merge branch 'development'
[KiwiIRC.git] / client / assets / dev / build.js
CommitLineData
8eb39b80
D
1var fs = require('fs'),\r
2 uglyfyJS = require('uglify-js'),\r
f9ff7686 3 _ = require('lodash'),\r
8eb39b80 4 config = require('./../../../server/configuration.js');\r
23533845
D
5\r
6var FILE_ENCODING = 'utf-8',\r
7 EOL = '\n';\r
8\r
9\r
9df70c63
D
10function concat(src) {\r
11 var file_list = src;\r
23533845 12 var out = file_list.map(function(file_path){\r
9df70c63 13 return fs.readFileSync(file_path, FILE_ENCODING) + '\n\n';\r
23533845
D
14 });\r
15\r
9df70c63 16 return out.join(EOL);\r
23533845
D
17}\r
18\r
8eb39b80
D
19\r
20\r
21config.loadConfig();\r
22\r
23\r
24\r
25\r
26\r
27/**\r
eaaf73b0 28 * Build the _kiwi.js files\r
8eb39b80
D
29 */\r
30\r
9df70c63
D
31var src = concat([\r
32 __dirname + '/app.js',\r
33 __dirname + '/model_application.js',\r
34 __dirname + '/model_gateway.js',\r
35 __dirname + '/model_member.js',\r
36 __dirname + '/model_memberlist.js',\r
37 __dirname + '/model_panel.js',\r
38 __dirname + '/model_panellist.js',\r
b9c64fcd 39 __dirname + '/model_query.js',\r
9df70c63
D
40 __dirname + '/model_channel.js',\r
41 __dirname + '/model_server.js',\r
19cc6364 42 __dirname + '/model_applet.js',\r
890a9b91 43 __dirname + '/model_pluginmanager.js',\r
5bed0536 44 __dirname + '/model_datastore.js',\r
19cc6364
D
45\r
46 __dirname + '/applet_settings.js',\r
721ad945 47 __dirname + '/applet_nickserv.js',\r
51ae0eb8 48 __dirname + '/applet_chanlist.js',\r
9df70c63
D
49\r
50 __dirname + '/utils.js',\r
51 __dirname + '/view.js'\r
52]);\r
53\r
54\r
eaaf73b0 55src = '(function (global, undefined) {\n\n' + src + '\n\n})(window);';\r
9df70c63
D
56\r
57\r
58fs.writeFileSync(__dirname + '/../kiwi.js', src, FILE_ENCODING);\r
59\r
60\r
61src = uglyfyJS.parser.parse(src);\r
62src = uglyfyJS.uglify.ast_mangle(src);\r
63src = uglyfyJS.uglify.ast_squeeze(src);\r
64fs.writeFileSync(__dirname + '/../kiwi.min.js', uglyfyJS.uglify.gen_code(src), FILE_ENCODING);\r
23533845
D
65\r
66\r
67\r
68\r
8eb39b80
D
69console.log('kiwi.js and kiwi.min.js built');\r
70\r
71\r
72\r
73\r
74\r
75\r
76\r
77\r
78\r
79\r
80/**\r
81 * Build the index.html file\r
82 */\r
83\r
84var index_src = fs.readFileSync(__dirname + '/index.html.tmpl', FILE_ENCODING);\r
85var vars = {\r
0a8a61ad 86 base_path: config.get().http_base_path || '/kiwi',\r
93e84f75 87 cache_buster: Math.ceil(Math.random() * 9000).toString(),\r
2eec3842
D
88 server_settings: '{}',\r
89 client_plugins: '[]'\r
8eb39b80
D
90};\r
91\r
2eec3842 92// Any restricted server mode set?\r
93e84f75
D
93if (config.get().restrict_server) {\r
94 vars.server_settings = JSON.stringify({\r
95 connection: {\r
96 server: config.get().restrict_server,\r
97 port: config.get().restrict_server_port || 6667,\r
98 ssl: config.get().restrict_server_ssl,\r
99 channel: config.get().restrict_server_channel,\r
100 nick: config.get().restrict_server_nick,\r
101 allow_change: false\r
102 }\r
103 });\r
104}\r
105\r
2eec3842
D
106// Any client plugins?\r
107if (config.get().client_plugins && config.get().client_plugins.length > 0) {\r
108 vars.client_plugins = JSON.stringify(config.get().client_plugins);\r
109}\r
110\r
8eb39b80
D
111_.each(vars, function(value, key) {\r
112 index_src = index_src.replace(new RegExp('<%' + key + '%>', 'g'), value);\r
113});\r
114\r
115fs.writeFileSync(__dirname + '/../../index.html', index_src, FILE_ENCODING);\r
116\r
117\r
118console.log('index.html built');