-
Notifications
You must be signed in to change notification settings - Fork 181
/
make.js
109 lines (89 loc) · 2.63 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
var shell = require('shelljs/make'),
ug = require('uglify-js'),
fs = require('fs'),
vm = require('vm'),
//tar = require('tar-fs'),
//zlib = require('zlib'),
version = require('./package.json').version,
copy = "// Copyright 2015-2020 Olaf Frohn https://github.com/ofrohn, see LICENSE\n",
begin = "!(function() {",
end = "this.Celestial = Celestial;\n})();",
filename = './celestial',
filelist = [
'./src/celestial.js',
'./src/projection.js',
'./src/transform.js',
'./src/horizontal.js',
'./src/add.js',
'./src/get.js',
'./src/config.js',
'./src/canvas.js',
'./src/util.js',
'./src/form.js',
'./src/location.js',
'./src/kepler.js',
'./src/moon.js',
'./src/svg.js',
'./src/datetimepicker.js',
'./lib/d3.geo.zoom.js',
'./lib/d3-queue.js'
],
FINAL = true;
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/celestial.js', 'utf-8'), './src/celestial.js');
echo('V' + Celestial.version);
if (!FINAL) filename += Celestial.version;
if (version !== Celestial.version)
exec("npm version " + Celestial.version);
var file = cat(filelist);
file = copy + begin + file.replace(/\/\* global.*/g, '') + end;
file.to(filename + '.js');
echo('Minifying');
var out = ug.minify(filename + '.js');
echo(out.error || "OK");
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: ['celestial.css', 'readme.md', 'LICENSE', 'celestial.min.js', 'celestial.js', 'images/dtpick.png', 'data', 'demo', 'lib/d3.min.js', 'lib/d3.geo.projection.min.js']
})
.pipe(zlib.createGzip())
.pipe(fs.createWriteStream(filename + '.tar.gz'))
*/
echo('Done');
};