1 | #!/usr/bin/env node
|
2 | "use strict";
|
3 |
|
4 | const ver = require('semver').major(process.versions.node);
|
5 |
|
6 | if (ver < 8) {
|
7 | const colors = require('colors');
|
8 | console.error(colors.red('Pandora.js requires Node.js >= 8.0.0, current version is ' + process.versions.node));
|
9 | process.exit(1);
|
10 | }
|
11 |
|
12 | // FIX ISSUE LIKE: https://github.com/npm/npm/issues/4603
|
13 | const {spawn} = require('child_process');
|
14 | if (process.env.npm_config_argv && !process.env.npm_run_pandora_l2) {
|
15 | spawn(process.argv[0], process.argv.slice(1), {
|
16 | stdio: 'inherit',
|
17 | env: Object.assign({
|
18 | npm_run_pandora_l2: 'true'
|
19 | }, process.env)
|
20 | });
|
21 | return;
|
22 | }
|
23 |
|
24 | require('source-map-support').install();
|
25 | const fs = require('fs');
|
26 | const path = require('path');
|
27 | const yargs = require('yargs');
|
28 |
|
29 | const logo = fs.readFileSync(path.join(__dirname, '../logo')).toString();
|
30 | const version = `${logo}
|
31 | BaseDir: ${process.cwd()}
|
32 | Pandora: ${require('../package.json').version} (${__dirname})
|
33 | Node: ${process.version} ${process.alinode ? '(Alinode: ' + process.alinode + ')' : ''}`;
|
34 |
|
35 | process.on('uncaughtException', function (e) {
|
36 | console.error(e.stack);
|
37 | process.exit(1);
|
38 | });
|
39 |
|
40 | yargs
|
41 | .demand(1)
|
42 | .help()
|
43 | .version(version)
|
44 | .alias('v', 'version')
|
45 | .command(require('../cli/init'))
|
46 | .command(require('../cli/start'))
|
47 | // .command(require('../cli/pid'))
|
48 | .wrap(Math.max(40, yargs.terminalWidth() - 8))
|
49 | .locale('en')
|
50 | .argv;
|