UNPKG

the-shepherd

Version:

Control a herd of wild processes.

90 lines (75 loc) 2.08 kB
// Generated by CoffeeScript 1.8.0 (function() { var $, Fs, Helpers, Herd, Opts, Server, Worker, d, die, err, log, outStr, _ref, __slice = [].slice; Opts = require('./opts'); if (Opts.daemon) { require('daemon')({ stdout: process.stdout, stderr: process.stderr }); } $ = require("bling"); Fs = require("fs"); log = $.logger("[shepherd]"); die = function() { var a; a = 1 <= arguments.length ? __slice.call(arguments, 0) : []; log.apply(null, a); return process.exit(1); }; if (Opts.O === "-") { try { outStr = process.stdout; } catch (_error) { err = _error; die("Failed to open stdout:", err.stack); } } else { try { outStr = Fs.createWriteStream(Opts.O, { flags: 'a', mode: 0x1b6, encoding: 'utf8' }); } catch (_error) { err = _error; die("Failed to open output stream:", err.stack); } } $.log.out = function() { var a; a = 1 <= arguments.length ? __slice.call(arguments, 0) : []; try { return outStr.write(a.map($.toString).join(' ') + "\n", 'utf8'); } catch (_error) { err = _error; return die("Failed to write to log:", err.stack); } }; Helpers = require('./helpers'); Herd = require('./herd'); if (Opts.example) { d = Herd.defaults(); _ref = require("./child"), Server = _ref.Server, Worker = _ref.Worker; d.servers.push(Server.defaults()); d.workers.push(Worker.defaults()); console.log(JSON.stringify(d, null, ' ')); process.exit(0); } if (Opts.P && Opts.daemon) { Fs.writeFileSync(Opts.P, String(process.pid)); } Helpers.readJson(Opts.F).wait(function(err, config) { if (err) { die("Failed to open herd file:", Opts.F, err.stack); } log("Starting new herd, shepherd PID: " + process.pid); return new Herd(config).start().wait(function(err) { var _ref1; if (err) { return die("Failed to start herd:", (_ref1 = err.stack) != null ? _ref1 : err); } }); }); }).call(this);