UNPKG

omelop

Version:

[![Build Status](https://travis-ci.org/node-omelop/omelop.svg?branch=master)](https://travis-ci.org/node-omelop/omelop)

134 lines 8.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.terminal = exports.runServer = exports.abort = exports.prompt = exports.confirm = exports.connectToMaster = exports.version = void 0; const os = require("os"); const path = require("path"); const util = require("util"); const constants_1 = require("./constants"); const utils = require("../../lib/util/utils"); const starter = require("../../lib/master/starter"); const constants = require("../../lib/util/constants"); const omelop_admin_1 = require("omelop-admin"); const child_process_1 = require("child_process"); const console_1 = require("../../lib/modules/console"); exports.version = require('../../../package.json').version; function connectToMaster(id, opts, cb) { let client = new omelop_admin_1.AdminClient({ username: opts.username, password: opts.password, md5: true }); client.connect(id, opts.host, opts.port, function (err) { if (err) { abort(constants_1.CONNECT_ERROR + err.red); } if (typeof cb === 'function') { cb(client); } }); } exports.connectToMaster = connectToMaster; /** * Prompt confirmation with the given `msg`. * * @param {String} msg * @param {Function} fn */ function confirm(msg, fn) { prompt(msg, function (val) { fn(/^ *y(es)?/i.test(val)); }); } exports.confirm = confirm; /** * Prompt input with the given `msg` and callback `fn`. * * @param {String} msg * @param {Function} fn */ function prompt(msg, fn) { if (' ' === msg[msg.length - 1]) { process.stdout.write(msg); } else { console.log(msg); } process.stdin.setEncoding('ascii'); process.stdin.once('data', function (data) { fn(data); }).resume(); } exports.prompt = prompt; /** * Exit with the given `str`. * * @param {String} str */ function abort(str) { console.error(str); process.exit(1); } exports.abort = abort; /** * Run server. * * @param {Object} server server information */ function runServer(server) { let cmd, key; let main = path.resolve(server.home, 'app.js'); if (utils.isLocal(server.host)) { let options = []; options.push(main); for (key in server) { options.push(util.format('%s=%s', key, server[key])); } starter.localrun(process.execPath, null, options); } else { cmd = util.format('cd "%s" && "%s"', server.home, process.execPath); cmd += util.format(' "%s" ', main); for (key in server) { cmd += util.format(' %s=%s ', key, server[key]); } starter.sshrun(cmd, server.host); } } exports.runServer = runServer; /** * Terminal application. * * @param {String} signal stop/kill * @param {Object} opts options for `stop/kill` operation */ function terminal(signal, opts) { console.info(constants_1.CLOSEAPP_INFO); // option force just for `kill` if (opts.force) { if (os.platform() === constants.PLATFORM.WIN) { (0, child_process_1.exec)(constants_1.KILL_CMD_WIN); } else { (0, child_process_1.exec)(constants_1.KILL_CMD_LUX); } process.exit(1); return; } let id = 'pinus_terminal_' + Date.now(); connectToMaster(id, opts, function (client) { client.request(console_1.ConsoleModule.moduleId, { signal: signal, ids: opts.serverIds }, function (err, msg) { if (err) { console.error(err); } if (signal === 'kill') { if (msg.code === 'ok') { console.log('All the servers have been terminated!'); } else { console.log('There may be some servers remained:', msg.serverIds); } } process.exit(0); }); }); } exports.terminal = terminal; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9iaW4vdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3Qiw2QkFBNkI7QUFFN0IsMkNBQTRIO0FBQzVILDhDQUE4QztBQUM5QyxvREFBb0Q7QUFDcEQsc0RBQXNEO0FBQ3RELCtDQUEyQztBQUMzQyxpREFBcUM7QUFDckMsdURBQWdFO0FBRXJELFFBQUEsT0FBTyxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUU5RCxTQUFnQixlQUFlLENBQUMsRUFBVSxFQUFFLElBQVMsRUFBRSxFQUFpQztJQUNwRixJQUFJLE1BQU0sR0FBRyxJQUFJLDBCQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RixNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHO1FBQ2xELElBQUksR0FBRyxFQUFFO1lBQ0wsS0FBSyxDQUFDLHlCQUFhLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsSUFBSSxPQUFPLEVBQUUsS0FBSyxVQUFVLEVBQUU7WUFDMUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2Q7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFWRCwwQ0FVQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsT0FBTyxDQUFDLEdBQVcsRUFBRSxFQUFZO0lBQzdDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsVUFBVSxHQUFXO1FBQzdCLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7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