UNPKG

pot-js

Version:

Process management module

87 lines (60 loc) 2.4 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _potLogger = require('pot-logger'); var _path = require('path'); var _sliceFile = require('slice-file'); var _sliceFile2 = _interopRequireDefault(_sliceFile); var _globby = require('globby'); var _globby2 = _interopRequireDefault(_globby); var _PrepareCli = require('../utils/PrepareCli'); var _cli = require('../Schemas/cli'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } exports.default = (() => { var _ref = _asyncToGenerator(function* () { let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; (0, _PrepareCli.prepareRun)(_cli.log, options); const line = options.line, category = options.category, follow = options.follow; var _ref2 = yield (0, _PrepareCli.prepareTarget)(options); const connection = _ref2.connection, targetName = _ref2.targetName; const state = yield connection.getState(); if (!state) { throw new Error(`"${targetName}" NOT found`); } const logsDir = state.logsDir; if (!logsDir) { _potLogger.logger.warn('Logger is disabled'); return; } let appCategory = yield (0, _PrepareCli.ensureArg)({ value: category, message: 'Please select a log file', errorMessage: 'Log file NOT found', getChoices: function () { return (0, _globby2.default)('*.log', { cwd: logsDir }); } }); if (!appCategory.endsWith('.log')) { appCategory += '.log'; } const logFile = (0, _path.join)(logsDir, appCategory); const sf = (0, _sliceFile2.default)(logFile); const mode = follow ? 'follow' : 'slice'; sf.on('error', function (err) { if (err.code !== 'ENOENT') { throw err; } _potLogger.logger.warn('Log file NOT found'); }); sf[mode](-line).pipe(process.stdout); }); function log() { return _ref.apply(this, arguments); } return log; })();