UNPKG

mastery

Version:
92 lines (75 loc) 6.49 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _child_process = require('child_process'); var _inquirer = require('inquirer'); var _inquirer2 = _interopRequireDefault(_inquirer); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const ColorizeText = requireF('services/ColorizeText'); const { getServerName } = requireF('services/CommonServices'); const { validateBuildDir } = requireF('services/CommonValidations'); /** * The main class that handles the 'scale' command execution. * * @export * @class ScaleCommand * @property {string} MK_INTRO The translation key of 'initializing' phase message. */ let ScaleCommand = class ScaleCommand { constructor() { this.MK_INTRO = 'scale.intro'; } /** * Retrieve cluster length if its not defined on the CLI arguments. * * @returns {Promise.<Object[]>} User answers, with question key as its key and answer as its value */ query() { return (0, _asyncToGenerator3.default)(function* () { const questions = [{ name: 'length', message: i18n.t('mastery.questions.scale.length'), default: 0 }]; return yield _inquirer2.default.prompt(questions); })(); } /** * The main method to call another methods sequentially, including decorations output. Then, exec 'pm2 scale' command. * * @param {string} [length] The cluster length to scale for * @returns {Promise} */ execute(length) { var _this = this; return (0, _asyncToGenerator3.default)(function* () { validateBuildDir(); const serverName = getServerName(); console.log(ColorizeText.info(i18n.t(_this.MK_INTRO, { serverName }))); console.log(''); let clusterLength; if (!length) { const answers = yield _this.query(); clusterLength = answers.length; } else { clusterLength = length; } (0, _child_process.execSync)(`${ constants.PM2_BIN } scale ${ serverName } ${ clusterLength }`, { stdio: 'inherit' }); })(); } }; exports.default = ScaleCommand; module.exports = exports['default']; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzL21hc3Rlcnkvc2NhbGUvY29tcG9uZW50cy9TY2FsZUNvbW1hbmQuanMiXSwibmFtZXMiOlsiQ29sb3JpemVUZXh0IiwicmVxdWlyZUYiLCJnZXRTZXJ2ZXJOYW1lIiwidmFsaWRhdGVCdWlsZERpciIsIlNjYWxlQ29tbWFuZCIsIk1LX0lOVFJPIiwicXVlcnkiLCJxdWVzdGlvbnMiLCJuYW1lIiwibWVzc2FnZSIsImkxOG4iLCJ0IiwiZGVmYXVsdCIsInByb21wdCIsImV4ZWN1dGUiLCJsZW5ndGgiLCJzZXJ2ZXJOYW1lIiwiY29uc29sZSIsImxvZyIsImluZm8iLCJjbHVzdGVyTGVuZ3RoIiwiYW5zd2VycyIsImNvbnN0YW50cyIsIlBNMl9CSU4iLCJzdGRpbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFHQTs7Ozs7O0FBRUEsTUFBTUEsZUFBZUMsU0FBUyx1QkFBVCxDQUFyQjtBQUNBLE1BQU07QUFDSkM7QUFESSxJQUVGRCxTQUFTLHlCQUFULENBRko7QUFHQSxNQUFNO0FBQ0pFO0FBREksSUFFRkYsU0FBUyw0QkFBVCxDQUZKOztBQUlBOzs7Ozs7O0lBT3FCRyxZLEdBQU4sTUFBTUEsWUFBTixDQUFtQjtBQUFBO0FBQUEsU0FDaENDLFFBRGdDLEdBQ3JCLGFBRHFCO0FBQUE7O0FBSWhDOzs7OztBQUtNQyxPQUFOLEdBQWM7QUFBQTtBQUNaLFlBQU1DLFlBQVksQ0FBQztBQUNqQkMsY0FBTSxRQURXO0FBRWpCQyxpQkFBU0MsS0FBS0MsQ0FBTCxDQUFPLGdDQUFQLENBRlE7QUFHakJDLGlCQUFTO0FBSFEsT0FBRCxDQUFsQjs7QUFNQSxhQUFPLE1BQU0sbUJBQVNDLE1BQVQsQ0FBZ0JOLFNBQWhCLENBQWI7QUFQWTtBQVFiOztBQUVEOzs7Ozs7QUFNTU8sU0FBTixDQUFjQyxNQUFkLEVBQXNCO0FBQUE7O0FBQUE7QUFDcEJaOztBQUVBLFlBQU1hLGFBQWFkLGVBQW5COztBQUVBZSxjQUFRQyxHQUFSLENBQVlsQixhQUFhbUIsSUFBYixDQUFrQlQsS0FBS0MsQ0FBTCxDQUFPLE1BQUtOLFFBQVosRUFBc0I7QUFDbERXO0FBRGtELE9BQXRCLENBQWxCLENBQVo7QUFHQUMsY0FBUUMsR0FBUixDQUFZLEVBQVo7O0FBRUEsVUFBSUUsYUFBSjtBQUNBLFVBQUksQ0FBQ0wsTUFBTCxFQUFhO0FBQ1gsY0FBTU0sVUFBVSxNQUFNLE1BQUtmLEtBQUwsRUFBdEI7QUFDQWMsd0JBQWdCQyxRQUFRTixNQUF4QjtBQUNELE9BSEQsTUFHTztBQUNMSyx3QkFBZ0JMLE1BQWhCO0FBQ0Q7O0FBRUQsbUNBQVUsSUFBRU8sVUFBVUMsT0FBUSxZQUFTUCxVQUFXLE1BQUdJLGFBQWMsR0FBbkUsRUFBc0U7QUFDcEVJLGVBQU87QUFENkQsT0FBdEU7QUFsQm9CO0FBcUJyQjtBQTlDK0IsQztrQkFBYnBCLFkiLCJmaWxlIjoicGFja2FnZXMvbWFzdGVyeS9zY2FsZS9jb21wb25lbnRzL1NjYWxlQ29tbWFuZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGV4ZWNTeW5jLFxufSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCBpbnF1aXJlciBmcm9tICdpbnF1aXJlcic7XG5cbmNvbnN0IENvbG9yaXplVGV4dCA9IHJlcXVpcmVGKCdzZXJ2aWNlcy9Db2xvcml6ZVRleHQnKTtcbmNvbnN0IHtcbiAgZ2V0U2VydmVyTmFtZSxcbn0gPSByZXF1aXJlRignc2VydmljZXMvQ29tbW9uU2VydmljZXMnKTtcbmNvbnN0IHtcbiAgdmFsaWRhdGVCdWlsZERpcixcbn0gPSByZXF1aXJlRignc2VydmljZXMvQ29tbW9uVmFsaWRhdGlvbnMnKTtcblxuLyoqXG4gKiBUaGUgbWFpbiBjbGFzcyB0aGF0IGhhbmRsZXMgdGhlICdzY2FsZScgY29tbWFuZCBleGVjdXRpb24uXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIFNjYWxlQ29tbWFuZFxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1LX0lOVFJPIFRoZSB0cmFuc2xhdGlvbiBrZXkgb2YgJ2luaXRpYWxpemluZycgcGhhc2UgbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2NhbGVDb21tYW5kIHtcbiAgTUtfSU5UUk8gPSAnc2NhbGUuaW50cm8nO1xuXG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIGNsdXN0ZXIgbGVuZ3RoIGlmIGl0cyBub3QgZGVmaW5lZCBvbiB0aGUgQ0xJIGFyZ3VtZW50cy5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2UuPE9iamVjdFtdPn0gVXNlciBhbnN3ZXJzLCB3aXRoIHF1ZXN0aW9uIGtleSBhcyBpdHMga2V5IGFuZCBhbnN3ZXIgYXMgaXRzIHZhbHVlXG4gICAqL1xuICBhc3luYyBxdWVyeSgpIHtcbiAgICBjb25zdCBxdWVzdGlvbnMgPSBbe1xuICAgICAgbmFtZTogJ2xlbmd0aCcsXG4gICAgICBtZXNzYWdlOiBpMThuLnQoJ21hc3RlcnkucXVlc3Rpb25zLnNjYWxlLmxlbmd0aCcpLFxuICAgICAgZGVmYXVsdDogMCxcbiAgICB9XTtcblxuICAgIHJldHVybiBhd2FpdCBpbnF1aXJlci5wcm9tcHQocXVlc3Rpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbWFpbiBtZXRob2QgdG8gY2FsbCBhbm90aGVyIG1ldGhvZHMgc2VxdWVudGlhbGx5LCBpbmNsdWRpbmcgZGVjb3JhdGlvbnMgb3V0cHV0LiBUaGVuLCBleGVjICdwbTIgc2NhbGUnIGNvbW1hbmQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbGVuZ3RoXSBUaGUgY2x1c3RlciBsZW5ndGggdG8gc2NhbGUgZm9yXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfVxuICAgKi9cbiAgYXN5bmMgZXhlY3V0ZShsZW5ndGgpIHtcbiAgICB2YWxpZGF0ZUJ1aWxkRGlyKCk7XG5cbiAgICBjb25zdCBzZXJ2ZXJOYW1lID0gZ2V0U2VydmVyTmFtZSgpO1xuXG4gICAgY29uc29sZS5sb2coQ29sb3JpemVUZXh0LmluZm8oaTE4bi50KHRoaXMuTUtfSU5UUk8sIHtcbiAgICAgIHNlcnZlck5hbWUsXG4gICAgfSkpKTtcbiAgICBjb25zb2xlLmxvZygnJyk7XG5cbiAgICBsZXQgY2x1c3Rlckxlbmd0aDtcbiAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgY29uc3QgYW5zd2VycyA9IGF3YWl0IHRoaXMucXVlcnkoKTtcbiAgICAgIGNsdXN0ZXJMZW5ndGggPSBhbnN3ZXJzLmxlbmd0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgY2x1c3Rlckxlbmd0aCA9IGxlbmd0aDtcbiAgICB9XG5cbiAgICBleGVjU3luYyhgJHtjb25zdGFudHMuUE0yX0JJTn0gc2NhbGUgJHtzZXJ2ZXJOYW1lfSAke2NsdXN0ZXJMZW5ndGh9YCwge1xuICAgICAgc3RkaW86ICdpbmhlcml0JyxcbiAgICB9KTtcbiAgfVxufVxuIl19