-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmake.js
86 lines (68 loc) · 1.93 KB
/
make.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
var shell = require('shelljs/make'),
ug = require('uglify-js'),
fs = require('fs'),
vm = require('vm'),
tar = require('tar-fs'),
zlib = require('zlib'),
copy = "// Copyright 2015 Olaf Frohn https://github.com/ofrohn, see LICENSE\n",
begin = "!(function() {\n",
end = "this.Asteroids = Asteroids;\n})();",
filename = './asteroids';
target.all = function() {
target.test()
target.build()
};
target.test = function() {
cd('src');
//jshint linting
ls("*.js").forEach(function(file) {
if (exec('jshint ' + file).code !== 0) {
echo('JSHINT FAILED');
exit(0);
}
});
echo('JSHint tests passed');
cd('..');
//run tests
/* cd('test');
ls("*-test.js").forEach(function(file) {
if (exec('node ' + file).code !== 123) {
echo('TEST FAILED for ' + file);
exit(0);
}
});
echo('Unit tests passed');
cd('..');*/
};
target.build = function() {
echo('Copying files');
var file = cat([
'./src/display.js',
'./src/util.js',
'./src/matrix.js',
'./src/get.js',
'./src/axis.js'
]);
file = copy + begin + file.replace(/\/\* global.*/g, '') + end;
file.to(filename + '.js');
echo('Minifying');
var out = ug.minify(filename + '.js');
fs.writeFileSync(filename + '.min.js', copy + out.code);
/*var read = ug.parse(fs.readFileSync(filename + '.js', "utf8"));
read.figure_out_scope();
var comp = read.transform( UglifyJS.Compressor(); );
comp.figure_out_scope();
comp.compute_char_frequency();
comp.mangle_names();
var out = comp.print_to_string();
fs.writeFileSync(filename + '.min.js', out);
*/
echo('Writing data');
// zip data + prod. code + css
tar.pack('./', {
entries: ['viewer.html', 'style.css', 'readme.md', 'LICENSE', 'asteroids.min.js', 'asteroids.js', 'data', 'lib/d3.min.js', 'lib/d3.js']
})
.pipe(zlib.createGzip())
.pipe(fs.createWriteStream(filename + '.tar.gz'))
echo('Done');
};