UNPKG

maniajs

Version:

ManiaPlanet (Dedicated) Server Controller.

80 lines (66 loc) 1.87 kB
/** * 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(); }