Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80512 views
1
#!/usr/bin/env node
2
var fs = require('fs');
3
var JSONStream = require('JSONStream');
4
var through = require('through2');
5
6
var b = require('./args')(process.argv.slice(2));
7
process.stdout.on('error', process.exit);
8
9
if ((b.argv._[0] === 'help' && b.argv._[1]) === 'advanced'
10
|| (b.argv.h || b.argv.help) === 'advanced') {
11
return fs.createReadStream(__dirname + '/advanced.txt')
12
.pipe(process.stdout)
13
.on('close', function () { process.exit(1) })
14
;
15
}
16
if (b.argv._[0] === 'help' || b.argv.h || b.argv.help
17
|| (process.argv.length <= 2 && process.stdin.isTTY)) {
18
return fs.createReadStream(__dirname + '/usage.txt')
19
.pipe(process.stdout)
20
.on('close', function () { process.exit(1) })
21
;
22
}
23
if (b.argv.version) {
24
return console.log(require('../package.json').version);
25
}
26
27
b.on('error', errorExit);
28
29
if (b.argv.pack) {
30
process.stdin.pipe(b.pack()).pipe(process.stdout);
31
process.stdin.resume();
32
return;
33
}
34
35
if (b.argv.deps) {
36
var stringify = JSONStream.stringify();
37
stringify.pipe(process.stdout);
38
b.pipeline.get('deps').push(through.obj(
39
function (row, enc, next) { stringify.write(row); next() },
40
function () { stringify.end() }
41
));
42
return b.bundle();
43
}
44
45
if (b.argv.list) {
46
b.pipeline.get('deps').push(through.obj(
47
function (row, enc, next) {
48
console.log(row.file || row.id);
49
next()
50
}
51
));
52
return b.bundle();
53
}
54
55
var bundle = b.bundle();
56
bundle.on('error', errorExit);
57
58
var outfile = b.argv.o || b.argv.outfile;
59
if (outfile) {
60
bundle.pipe(fs.createWriteStream(outfile));
61
}
62
else {
63
bundle.pipe(process.stdout);
64
}
65
66
function errorExit(err) {
67
if (err.stack) {
68
console.error(err.stack);
69
}
70
else {
71
console.error(String(err));
72
}
73
process.exit(1);
74
}
75
76