UNPKG

1.46 kBJavaScriptView Raw
1var fs = require('fs');
2var program = require('commander');
3var commands = require('./commands')(program);
4var packageJson = require('./package.json');
5
6program.LOG_PATH = process.env.HOME + '/.cli-log';
7
8// Initialize cli options
9program
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// Initialize prompt
16program.prompt = require('prompt');
17program.prompt.message = '';
18program.prompt.delimiter = '';
19program.prompt.colors = false;
20
21// Turn off colors when non-interactive
22var colors = require('colors');
23colors.mode = process.stdout.isTTY ? colors.mode : 'none';
24
25// Setup logging and messaging
26var logMessages = [];
27program.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
37program.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
53if (!process.argv.slice(2).length) {
54 program.outputHelp();
55}
56
57// Process Commands
58program.parse(process.argv);