omelot-cli
Version:
omelot command line client for managing omelot
122 lines • 9.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const readline = require("readline");
const omelot_admin_1 = require("omelot-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 omelot_admin_1.AdminClient({
username: username,
password: password,
md5: true
});
let id = 'omelot_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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFDQUFxQztBQUNyQywrQ0FBMkM7QUFDM0MscUNBQXFDO0FBQ3JDLHFDQUFrQztBQUNsQywrQkFBK0I7QUFDL0IsdUNBQWdDO0FBRWhDLElBQUksUUFBUSxHQUFHLGVBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxlQUFJLENBQUMsR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDO0FBQ2xELElBQUksUUFBUSxHQUFHLGVBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxlQUFJLENBQUMsR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDO0FBQ2xELElBQUksSUFBSSxHQUFHLGVBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxlQUFJLENBQUMsR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDO0FBQ2hELElBQUksSUFBSSxHQUFHLGVBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxlQUFJLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQ3pDLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztBQUNwQixJQUFJLE1BQU0sR0FBZ0IsSUFBSSxDQUFDO0FBRy9CO0lBQ0UsTUFBTSxHQUFHLElBQUksMEJBQVcsQ0FBQztRQUN2QixRQUFRLEVBQUUsUUFBUTtRQUNsQixRQUFRLEVBQUUsUUFBUTtRQUNsQixHQUFHLEVBQUUsSUFBSTtLQUNWLENBQUMsQ0FBQztJQUNILElBQUksRUFBRSxHQUFHLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDcEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEdBQVU7UUFDakQsSUFBSSxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDNUIsT0FBTyxDQUFDLElB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QUMsSUFBSSxFQUFFLElBQUksRUFBRSxlQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pFLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pELElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRWxELHFDQUFxQztJQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbEQsQ0FBQyJ9