omelop
Version:
[](https://travis-ci.org/node-omelop/omelop)
134 lines • 8.41 kB
JavaScript
;
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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