pinus-cli
Version:
pinus command line client for managing pinus
122 lines • 9.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const readline = require("readline");
const pinus_admin_1 = require("pinus-admin");
const command = require("./command");
const consts_1 = require("./consts");
const util = require("./util");
const optimist_1 = require("optimist");
let username = optimist_1.argv['u'] = optimist_1.argv['u'] || 'monitor';
let password = optimist_1.argv['p'] = optimist_1.argv['p'] || 'monitor';
let host = optimist_1.argv['h'] = optimist_1.argv['h'] || 'localhost';
let port = optimist_1.argv['P'] = optimist_1.argv['P'] || 3005;
let context = 'all';
let client = null;
function doConnect() {
client = new pinus_admin_1.AdminClient({
username: username,
password: password,
md5: true
});
let id = 'pinus_cli_' + Date.now();
client.connect(id, host, port, function (err) {
if (err) {
util.log('\n' + err + '\n');
process.exit(0);
}
else {
let ASCII_LOGO = consts_1.consts.ASCII_LOGO;
for (let i = 0; i < ASCII_LOGO.length; i++) {
util.log(ASCII_LOGO[i]);
}
let WELCOME_INFO = consts_1.consts.WELCOME_INFO;
for (let i = 0, l = WELCOME_INFO.length; i < l; i++) {
util.log(WELCOME_INFO[i]);
}
startCli();
}
});
client.on('close', function () {
client.socket.disconnect();
util.log('\ndisconnect from master');
process.exit(0);
});
}
exports.default = doConnect;
function startCli() {
let rl = readline.createInterface(process.stdin, process.stdout, completer);
let PROMPT = username + consts_1.consts.PROMPT + context + '>';
rl.setPrompt(PROMPT);
rl.prompt();
let rootCommand = command.default();
rl.on('line', function (line) {
let key = line.trim();
if (!key) {
util.help();
rl.prompt();
return;
}
switch (key) {
case 'help':
util.help();
rl.prompt();
break;
case '?':
util.help();
rl.prompt();
break;
case 'quit':
rootCommand.quit(rl);
break;
case 'kill':
rootCommand.kill(rl, client);
break;
default:
rootCommand.handle(key, {
user: username
}, rl, client);
break;
}
}).on('close', function () {
util.log('bye ' + username);
process.exit(0);
});
}
function completer(line) {
line = line.trim();
let completions = consts_1.consts.COMANDS_COMPLETE;
let hits = [];
// commands tab for infos
if (consts_1.consts.COMPLETE_TWO[line]) {
if (line === 'show') {
for (let k in consts_1.consts.SHOW_COMMAND) {
hits.push(k);
}
}
else if (line === 'help') {
for (let k in consts_1.consts.COMANDS_COMPLETE_INFO) {
hits.push(k);
}
}
else if (line === 'enable' || line === 'disable') {
hits.push('app');
hits.push('module');
}
else if (line === 'dump') {
hits.push('memory');
hits.push('cpu');
}
}
hits = util.tabComplete(hits, line, consts_1.consts.COMANDS_COMPLETE_INFO, 'complete');
hits = util.tabComplete(hits, line, consts_1.consts.COMANDS_COMPLETE_INFO, 'help');
hits = util.tabComplete(hits, line, consts_1.consts.SHOW_COMMAND, 'show');
hits = util.tabComplete(hits, line, null, 'enable');
hits = util.tabComplete(hits, line, null, 'disable');
hits = util.tabComplete(hits, line, null, 'disable');
hits = util.tabComplete(hits, line, null, 'dump');
hits = util.tabComplete(hits, line, null, 'use');
hits = util.tabComplete(hits, line, null, 'stop');
// show all completions if none found
return [hits.length ? hits : completions, line];
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFDQUFxQztBQUNyQyw2Q0FBMEM7QUFDMUMscUNBQXFDO0FBQ3JDLHFDQUFrQztBQUNsQywrQkFBK0I7QUFDL0IsdUNBQWdDO0FBRWhDLElBQUksUUFBUSxHQUFHLGVBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxlQUFJLENBQUMsR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDO0FBQ2xELElBQUksUUFBUSxHQUFHLGVBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxlQUFJLENBQUMsR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDO0FBQ2xELElBQUksSUFBSSxHQUFHLGVBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxlQUFJLENBQUMsR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDO0FBQ2hELElBQUksSUFBSSxHQUFHLGVBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxlQUFJLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQ3pDLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztBQUNwQixJQUFJLE1BQU0sR0FBZ0IsSUFBSSxDQUFDO0FBRy9CLFNBQXdCLFNBQVM7SUFDL0IsTUFBTSxHQUFHLElBQUkseUJBQVcsQ0FBQztRQUN2QixRQUFRLEVBQUUsUUFBUTtRQUNsQixRQUFRLEVBQUUsUUFBUTtRQUNsQixHQUFHLEVBQUUsSUFBSTtLQUNWLENBQUMsQ0FBQztJQUNILElBQUksRUFBRSxHQUFHLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDbkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEdBQVU7UUFDakQsSUFBSSxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDNUIs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MUUsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxlQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pFLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pELElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRWxELHFDQUFxQztJQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbEQsQ0FBQyJ9