the-shepherd
Version:
Control a herd of wild processes.
70 lines (52 loc) • 1.66 kB
JavaScript
// Generated by CoffeeScript 2.5.1
(function() {
var $, cmd, die, die_soon, echo, echoResponse, exit_soon, parseArgv, quoted, required, setVerbose, verbose, verboseMode, warn;
$ = require('bling');
$.log.enableTimestamps();
({parseArgv} = require('./util/parse-args'));
cmd = process.cmdv != null ? process.cmdv : process.cmdv = parseArgv();
verboseMode = !!(cmd.verbose || cmd.v);
setVerbose = function(v) {
return echo("Setting verbose mode:", verboseMode = !!v);
};
echo = function(...msg) {
return $.log(`shep-${process.pid}`, ...msg);
};
warn = function(...msg) {
$.log(`shep-${process.pid} [warn]`, ...msg);
return false;
};
verbose = function(...msg) {
return verboseMode && $.log(`shep-${process.pid} [verbose]`, ...msg);
};
quoted = function(s) {
return '"' + s.replace(/"/g, '\\"') + '"';
};
exit_soon = (code = 0, ms = 100) => {
return setTimeout((() => {
return process.exit(code);
}), ms);
};
die = function(msg, code = 1) {
echo(msg);
return process.exit(code);
};
die_soon = function(msg, code = 1, ms = 100) {
echo(msg);
return exit_soon(code, ms);
};
required = function(msg, key, label) {
switch (true) {
case msg == null:
return warn("msg is required.");
case !msg[key] && msg[key].length:
return warn(`${label} is required.`);
default:
return true;
}
};
echoResponse = function(resp, socket) {
return echo(resp);
};
Object.assign(module.exports, {$, cmd, echo, warn, verbose, exit_soon, die, die_soon, required, echoResponse, quoted, setVerbose});
}).call(this);