UNPKG

rocksteady

Version:

Drink blazin' electric death, downtime! Fast, zero-downtime apps for production enviroments.

97 lines (76 loc) 2.18 kB
// Generated by CoffeeScript 1.9.1 var DROP_PRIVILEGES, FORCE_KILL_TIMEOUT, HOST, NODE_ENV, PORT, SERVER_MODULE, SET_GID, SET_UID, SOCKET_TIMEOUT, err, http, postmortem, ref, server, shutdown, shuttingDown, utils; http = require('http'); utils = require('./utils'); postmortem = require('postmortem'); ref = process.env, NODE_ENV = ref.NODE_ENV, FORCE_KILL_TIMEOUT = ref.FORCE_KILL_TIMEOUT, HOST = ref.HOST, PORT = ref.PORT, SERVER_MODULE = ref.SERVER_MODULE, SOCKET_TIMEOUT = ref.SOCKET_TIMEOUT, DROP_PRIVILEGES = ref.DROP_PRIVILEGES, SET_GID = ref.SET_GID, SET_UID = ref.SET_UID; try { require.resolve(SERVER_MODULE); } catch (_error) { err = _error; require('coffee-script'); } postmortem.install(); shuttingDown = false; server = null; shutdown = function() { if (shuttingDown) { return; } shuttingDown = true; server.close(function() { return process.exit(0); }); return setTimeout(function() { return process.exit(0); }, FORCE_KILL_TIMEOUT); }; process.on('uncaughtException', function(err) { process.send({ type: 'error', error: utils.serialize(err) }); return shutdown(); }); process.on('message', function(message) { if (shuttingDown || !(message != null ? message.type : void 0)) { return; } switch (message.type) { case 'stop': return shutdown(); } }); if (NODE_ENV === 'development') { require('vigil').vm(function(filename, stats) { return process.send({ type: 'watch', filename: filename, isDirectory: stats.isDirectory() }); }); } server = require(SERVER_MODULE); if (NODE_ENV === 'development') { server = require('bebop').middleware({ attach: server, port: 3456 }); } if (!(server instanceof http.Server)) { server = http.createServer(server); } server.listen(PORT, HOST, function() { if ((JSON.parse(DROP_PRIVILEGES)) && process.getgid() === 0) { process.setgid(SET_GID); return process.setuid(SET_UID); } }); server.setTimeout((parseInt(SOCKET_TIMEOUT, 10)) * 1000); process.on('SIGTERM', function() { return shutdown(); }); process.on('SIGINT', function() { return shutdown(); }); //# sourceMappingURL=worker.js.map