UNPKG

happner

Version:

distributed application engine with evented storage and mesh services

70 lines (51 loc) 1.67 kB
var commander = require('commander'); var trySend = function (code, data) { try { var message = code; if (data) message = message + ":::" + JSON.stringify(data); process.send(message); } catch (e) { //do nothing } } try { commander .allowUnknownOption()//fixes the unknown option error .version(JSON.parse(require('fs').readFileSync(__dirname + '/../package.json')).version) .option('--conf [file]', 'Load mesh config from file/module (js)') // ie. module.exports = {/* the config */} .option('--trace', 'Set LOG_LEVEL=trace') .option('--debug', 'Set LOG_LEVEL=debug') .option('--warn', 'Set LOG_LEVEL=warn') .option('--loader', 'Used by system, indicates happner is being loaded by a proxy') .parse(process.argv); var happner = require('../'); var __config = {}; var __mesh = false; var __listening = false; process.on('message', function (data) { if (data == 'listen') { if (!__mesh) return trySend('list-err', 'mesh not ready') __mesh.listen(function (e) { if (e) return trySend('list-err', e.toString()); __listening = true; trySend('listenin'); }); } }); if (commander.conf) __config = require(commander.conf); __config.deferListen = true; happner.on('mesh-log', function (data) { trySend('mesh-log', data); }); happner.on('startup-progress', function (data) { trySend('strt-prg', data); }); happner.create(__config, function (e, mesh) { if (e) return trySend('strt-err', e.toString()); __mesh = mesh; trySend('strt-rdy'); }); } catch (e) { trySend('strt-err', e.toString()); }