-
Notifications
You must be signed in to change notification settings - Fork 8
/
make.js
119 lines (97 loc) · 2.85 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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
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-17 Olaf Frohn https://github.com/ofrohn, see LICENSE\n",
begin = "!(function() {",
end = "this.Orrery = Orrery;\n})();",
filename = './orrery',
planetpath = "../../blog/res/planets/",
probepath = "../../blog/res/probes/";
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() {
/*vm.runInThisContext(fs.readFileSync('./src/orrery.js', 'utf-8'), './src/orrery.js');
echo('V' + Orrery.version);
*/
echo('Copying files');
/* var data = JSON.parse(cat('./data/planets.json'));
for (key in data) {
if (data[key].hasOwnProperty('icon'))
cp('-f', planetpath + data[key].icon, 'img');
}
cp('-f', planetpath + 'sun.png', 'img');
var data = JSON.parse(cat('./data/sbo.json'));
for (key in data) {
if (data[key].hasOwnProperty('icon'))
cp('-f', planetpath + data[key].icon, 'img');
}
*/
/*
var data = JSON.parse(cat('./data/probes.json'));
for (key in data) {
if (data[key].hasOwnProperty('icon'))
cp('-f', probepath + data[key].icon, 'images/probes');
}
*/
var file = cat([
'./lib/threex.planets.js',
'./lib/OrbitControls.js',
'./src/datetimepicker.js',
'./src/util.js',
'./src/transform.js',
'./src/get.js',
'./src/particleshader.js',
'./src/config.js',
'./src/orrery.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', 'orrery.js', 'orrery.min.js', 'data', 'images', 'lib/d3.min.js', 'lib/three.min.js']
})
.pipe(zlib.createGzip())
.pipe(fs.createWriteStream(filename + '.tar.gz'))
*/
echo('Done');
};