maniajs
Version:
ManiaPlanet (Dedicated) Server Controller.
80 lines (66 loc) • 1.87 kB
JavaScript
/**
* Boot.js
*
* Read out all the configs. register exit handlers. start logging.
*
* Then finally start ManiaJS.
*/
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = boot;
var _bunyan = require('bunyan');
var _bunyan2 = _interopRequireDefault(_bunyan);
var _bunyanPrettystream = require('bunyan-prettystream');
var _bunyanPrettystream2 = _interopRequireDefault(_bunyanPrettystream);
var _app = require('./app');
var _app2 = _interopRequireDefault(_app);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function boot() {
// Logger
var prettyOut = new _bunyanPrettystream2.default();
prettyOut.pipe(process.stdout);
var log = _bunyan2.default.createLogger({
name: 'maniajs',
streams: [{
level: 'debug',
type: 'raw',
stream: prettyOut
}, {
level: 'info',
path: __dirname + '/../log/application.log'
}]
});
log.info('Starting ManiaJS...');
/** Start ManiaJS */
var app = new _app2.default(log);
/** Set Error and exit handlers */
function exitHandler(options) {
if (options.cleanup) {
log.info('ManiaJS is going to shutdown...');
app.exit();
}
if (options.error) log.error('Uncaught Exception: ', options.error.stack);
if (options.exit) {
process.exit();
}
}
process.on('exit', function () {
return exitHandler({ cleanup: true });
});
process.on('SIGINT', function () {
return exitHandler({ exit: true });
});
process.on('uncaughtException', function (err) {
return exitHandler({ error: err });
});
/** Start ManiaJS */
app.prepare().then(function () {
return app.run();
}).catch(function (err) {
return log.fatal(err);
});
/** Make sure we will resume executing process */
process.stdin.resume();
}