ethstats-cli
Version:
EthStats - CLI Client
141 lines (115 loc) • 4.41 kB
JavaScript
;
var _package = _interopRequireDefault(require("../package.json"));
var _meow = _interopRequireDefault(require("meow"));
var _chalk = _interopRequireDefault(require("chalk"));
var _boxen = _interopRequireDefault(require("boxen"));
var _lodash = _interopRequireDefault(require("lodash"));
var _inquirer = _interopRequireDefault(require("inquirer"));
var _nodeCleanup = _interopRequireDefault(require("node-cleanup"));
var _updateNotifier = _interopRequireDefault(require("update-notifier"));
var _findProcess = _interopRequireDefault(require("find-process"));
var _systeminformation = _interopRequireDefault(require("systeminformation"));
var _Config = _interopRequireDefault(require("./Config.js"));
var _Configurator = _interopRequireDefault(require("./Configurator.js"));
var _Logger = _interopRequireDefault(require("./Logger.js"));
var _Cli = _interopRequireDefault(require("./Cli.js"));
var _Register = _interopRequireDefault(require("./Register.js"));
var _Server = _interopRequireDefault(require("./Server.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(0, _updateNotifier.default)({
pkg: _package.default
}).notify();
var diContainer = {
inquirer: _inquirer.default,
config: _Config.default,
pkg: _package.default,
meow: _meow.default,
chalk: _chalk.default,
boxen: _boxen.default,
lodash: _lodash.default,
systemInfo: _systeminformation.default
};
var log = new _Logger.default(_Config.default.logger);
diContainer.logger = log;
var cli = new _Cli.default(diContainer);
diContainer.cli = cli;
var configurator = new _Configurator.default(diContainer);
diContainer.configurator = configurator;
var server = new _Server.default(diContainer);
diContainer.server = server;
var register = new _Register.default(diContainer);
diContainer.register = register;
var initApp = function initApp() {
if (_Config.default.configStore.get('firstRun') !== false) {
log.echo('First run detected. Please follow instructions to register your node.');
}
var isServerFromConfigFile = !cli.flags.net && _Config.default.configStore.has('server') && _Config.default.configStore.get('server').url;
if (isServerFromConfigFile || cli.flags.serverUrl) {
server.create();
server.socket.on('open', function () {
if (_Config.default.configStore.get('firstRun') !== false) {
if (cli.flags.register) {
server.registerNode(cli.flags.accountEmail, cli.flags.nodeName);
} else {
register.askInstallationType(false);
}
}
});
} else {
log.info('Get server connections');
configurator.get({
configName: 'serverUrl'
}).then(function (configValue) {
if (configValue === null) {
log.error('Could not get server connections', false, true);
} else {
diContainer.config.serverUrls = configValue;
if (_Config.default.configStore.get('firstRun') === false) {
server.create();
} else if (!cli.flags.net && !cli.flags.register) {
register.askInstallationType(true);
} else {
server.create();
server.socket.on('open', function () {
if (_Config.default.configStore.get('firstRun') !== false) {
if (cli.flags.register) {
server.registerNode(cli.flags.accountEmail, cli.flags.nodeName);
} else {
register.askInstallationType(false);
}
}
});
}
}
});
}
server.eventEmitter.on('destroy', function () {
log.info('Reinitializing app...');
server.client.stop(true);
server.destroy();
server = new _Server.default(diContainer);
diContainer.server = server;
initApp();
});
};
(0, _findProcess.default)('name', 'ethstats-cli1').then(function (list) {
log.debug("Process list: ".concat(JSON.stringify(list)));
var processList = [];
list.forEach(function (proc) {
if (proc.name === 'ethstats-cli') {
processList.push(proc);
}
});
if (processList.length > 1) {
log.error('Ethstats-CLI is already running', false, true);
} else {
initApp();
}
});
(0, _nodeCleanup.default)(function (exitCode, signal) {
if (server && server.socket) {
server.logout();
server.destroy();
}
log.info("Exited with code: ".concat(exitCode, ", signal: ").concat(signal));
});