bin/bus
#!/usr/bin/env node
var _ = require('lodash')
var help = {
's': 'Event Bus Snapshot Address',
'p': 'Event Bus Publisher Address',
'c': 'Event Bus Collector Address',
'u': 'Event Bus db url'
}
var defaultsEnvVars = {
snapshot: process.env.MICRO_BUS_SNAPSHOT,
publisher: process.env.MICRO_BUS_PUBLISHER,
collector: process.env.MICRO_BUS_COLLECTOR,
store: {
dbUrl: process.env.MICRO_BUS_DB_URI
}
}
var defaults = {
snapshot: 'tcp://127.0.0.1:5556',
publisher: 'tcp://127.0.0.1:5557',
collector: 'tcp://127.0.0.1:5558',
store: {
dbUrl: 'mongodb://localhost/event_bus'
}
}
var helpDefaults = {
s: defaults.snapshot,
p: defaults.publisher,
c: defaults.collector,
u: defaults.store.dbUrl
}
var argv = require('./setup')('bin/bus', help, helpDefaults)
var conf = {
snapshot: argv.s || null,
publisher: argv.p,
collector: argv.c,
store: {
dbUrl: argv.u
}
}
var params = _.defaultsDeep({}, conf, defaultsEnvVars, defaults)
var config = _.pick(params, ['snapshot', 'publisher', 'collector', 'store'])
var busFactory = require('../lib/bus')
var bus = busFactory.getInstance(config)
bus.connect()
function close() {
bus.close()
process.exit()
}
process.on('SIGINT', close)
process.on('SIGTERM', close)