ethstats-cli
Version:
EthStats - CLI Client
99 lines (77 loc) • 3.82 kB
JavaScript
"use strict";
var _Config = _interopRequireDefault(require("./Config.js"));
var _pm = _interopRequireDefault(require("pm2"));
var _chalk = _interopRequireDefault(require("chalk"));
var _moment = _interopRequireDefault(require("moment"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
if (_Config.default.configStore.get('firstRun') !== false) {
console.log('Your node is not registered. Please run "ethstats-cli" first.');
process.exit(1);
}
var daemonOption = process.argv[2];
var daemonAvailableOptions = ['start', 'stop', 'restart', 'status', 'kill'];
if (!daemonAvailableOptions.includes(daemonOption)) {
console.log("\n ".concat(_chalk.default.bold('Ethstats Daemon'), "\n \n Usage\n $ ethstats-daemon [options]\n \n Options\n start Start daemon\n stop Stop daemon\n restart Restart daemon. If it is already started, the process will be stopped first.\n status Show infos about the daemon.\n kill Ethstats daemon uses PM2 as a process manager. This option will kill PM2 god daemon.\n \n If any CLI options are specified after the Daemon option, they will be forwarded to the forked process.\n"));
process.exit(1);
}
if (!process.argv.includes('-v')) {
process.argv.push('-v');
}
var localDir = '~/.ethstats-cli';
var processOptions = {
name: 'ethstats-cli',
script: "".concat(__dirname, "/../bin/ethstats-cli.js"),
pid: "".concat(localDir, "/ethstats-cli.pid"),
error: "".concat(localDir, "/ethstats-cli.log"),
output: "".concat(localDir, "/ethstats-cli.log"),
args: process.argv,
restartDelay: 1000
};
_pm.default.connect(function (err) {
if (err) {
console.error(err);
process.exit(1);
}
if (daemonOption === 'start') {
_pm.default.start(processOptions, function (error) {
console.log("Ethstats daemon START ".concat(error ? _chalk.default.red("[FAILED] ".concat(error.message)) : _chalk.default.green('[OK]')));
_pm.default.disconnect();
});
}
if (daemonOption === 'stop') {
_pm.default.stop(processOptions.name, function (error) {
console.log("Ethstats daemon STOP ".concat(error ? _chalk.default.red("[FAILED] ".concat(error.message)) : _chalk.default.green('[OK]')));
_pm.default.disconnect();
});
}
if (daemonOption === 'restart') {
_pm.default.restart(processOptions.name, function (error) {
console.log("Ethstats daemon RESTART ".concat(error ? _chalk.default.red("[FAILED] ".concat(error.message)) : _chalk.default.green('[OK]')));
_pm.default.disconnect();
});
}
if (daemonOption === 'status') {
_pm.default.describe(processOptions.name, function (error, arr) {
arr.forEach(function (app) {
var uptime = app.pm2_env.status === 'stopped' ? 0 : _moment.default.duration(Date.now() - app.pm2_env.created_at).humanize();
console.log("Name: ".concat(app.name));
console.log("PID: ".concat(app.pid));
console.log("Status: ".concat(app.pm2_env.status));
console.log("Uptime: ".concat(uptime));
console.log("Autorestart: ".concat(app.pm2_env.autorestart));
console.log("Restart times: ".concat(app.pm2_env.restart_time));
console.log("Instances: ".concat(app.pm2_env.instances));
console.log("CPU usage: ".concat(app.monit.cpu));
console.log("MEM usage: ".concat(app.monit.memory));
});
_pm.default.disconnect();
});
}
if (daemonOption === 'kill') {
_pm.default.killDaemon(function (error) {
console.log("Ethstats daemon KILL ".concat(error ? _chalk.default.red("[FAILED] ".concat(error.message)) : _chalk.default.green('[OK]')));
_pm.default.disconnect();
process.exit(error ? 1 : 0);
});
}
});