UNPKG

zcatalyst-cli

Version:

Command Line Tool for CATALYST

93 lines (92 loc) 4.15 kB
#!/usr/bin/env node 'use strict'; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = require("path"); const fs_1 = require("../util_modules/fs"); const runtime_store_1 = __importDefault(require("../runtime-store")); const pkg = fs_1.SYNC.readJSONFile((0, path_1.resolve)(__dirname, '../../package.json'), { checkpath: true, throws: false }); runtime_store_1.default.set('context.cli.package', pkg); if (!pkg) { console.error('Package corrupted!!. Re-install zcatalyst-cli and try again.'); process.exit(1); } const util_1 = require("util"); const ansi_colors_1 = require("ansi-colors"); const __1 = __importDefault(require("..")); const config_store_1 = __importDefault(require("../config-store")); const constants_1 = require("../util_modules/constants"); const env_1 = require("../util_modules/env"); const js_1 = require("../util_modules/js"); const logger_1 = require("../util_modules/logger"); const errorOut_1 = __importDefault(require("../errorOut")); (0, logger_1.debug)(); (0, logger_1.debug)(js_1.JS.repeat('-', 70)); (0, logger_1.debug)((0, ansi_colors_1.bold)('Command: ') + process.argv.join(' ')); (0, logger_1.debug)((0, ansi_colors_1.bold)('CLI Version: ') + pkg.version); (0, logger_1.debug)((0, ansi_colors_1.bold)('Platform: ') + process.platform); (0, logger_1.debug)((0, ansi_colors_1.bold)('Node Version: ') + process.version); (0, logger_1.debug)((0, ansi_colors_1.bold)('Time: ') + new Date().toString()); (0, logger_1.debug)(js_1.JS.repeat('-', 70)); (0, logger_1.debug)(); process.on('beforeExit', (code) => __awaiter(void 0, void 0, void 0, function* () { code = Number(process.exitCode) || code; if (code > 0 && process.stdout.isTTY) { const lastError = config_store_1.default.get('lastError', 0); const timestamp = Date.now(); if (lastError > timestamp - 120000) { let help; const cmd = yield cmdPromise; if (code === 1 && cmd) { const commandName = js_1.JS.get(js_1.JS.last(cmd.args), '_name', '[command]'); help = 'Having trouble? Try ' + (0, ansi_colors_1.bold)('catalyst ' + commandName + ' --help'); } else { help = 'Having trouble? Try again or contact support with contents of ' + constants_1.FILENAME.log; } if (cmd) { console.log('\n' + help); } } config_store_1.default.set('lastError', timestamp); } else { config_store_1.default.delete('lastError'); } process.exit(code); })); process.on('exit', (code) => { if ((0, env_1.isPrimaryShell)()) { fs_1.SYNC.deleteTempDir(); } const logFile = (0, path_1.join)(process.cwd(), constants_1.FILENAME.log); if (code < 2 && fs_1.SYNC.fileExists(logFile)) { fs_1.SYNC.deleteFile(logFile); } require('update-notifier')({ pkg, updateCheckInterval: 1000 * 60 * 15 }).notify({ defer: false, isGlobal: true }); }); process.on('uncaughtException', (err) => { (0, errorOut_1.default)(err); }); process.on('unhandledRejection', (reason, promise) => { (0, errorOut_1.default)((0, util_1.inspect)(reason || promise)); }); const cmdPromise = __1.default.processArgs(process.argv);