1 | var fs = require('fs');
|
2 | var program = require('commander');
|
3 | var commands = require('./commands')(program);
|
4 | var packageJson = require('./package.json');
|
5 |
|
6 | program.LOG_PATH = process.env.HOME + '/.cli-log';
|
7 |
|
8 |
|
9 | program
|
10 | .version(packageJson.version)
|
11 | .description('Generator for various 1508 boilerplate 4.0 stuff')
|
12 | .usage('<command> [options]')
|
13 | .option('-d, --debug', 'show debug info');
|
14 |
|
15 |
|
16 | program.prompt = require('prompt');
|
17 | program.prompt.message = '';
|
18 | program.prompt.delimiter = '';
|
19 | program.prompt.colors = false;
|
20 |
|
21 |
|
22 | var colors = require('colors');
|
23 | colors.mode = process.stdout.isTTY ? colors.mode : 'none';
|
24 |
|
25 |
|
26 | var logMessages = [];
|
27 | program.log = (function (debugMode) {
|
28 | return function _log(logEntry, noPrint) {
|
29 | logMessages.push(logEntry);
|
30 | if (!noPrint && debugMode) {
|
31 | console.log('DEBUG: '.cyan + logEntry);
|
32 | }
|
33 | };
|
34 | })(process.argv.indexOf('--debug') >= 0 || process.argv.indexOf('-d') >= 0);
|
35 |
|
36 |
|
37 | program.handleError = function handleError(err, exitCode) {
|
38 | if (err) {
|
39 | if (err.message) {
|
40 | program.log(err.message);
|
41 | } else {
|
42 | program.log(err);
|
43 | }
|
44 | }
|
45 |
|
46 | console.log('For more information see: ' + program.LOG_PATH);
|
47 |
|
48 | fs.writeFileSync(program.LOG_PATH, logMessages.join('\n') + '\n');
|
49 |
|
50 | process.exit(exitCode || 1);
|
51 | };
|
52 |
|
53 | if (!process.argv.slice(2).length) {
|
54 | program.outputHelp();
|
55 | }
|
56 |
|
57 |
|
58 | program.parse(process.argv);
|