bin/composr.js
#!/usr/bin/env node
var config = require('config')
var yn = require('yn')
if (yn(config.get('newrelic.enabled')) === true) {
require('newrelic')
}
if (yn(config.get('keymetrics')) === true) {
var pmx = require('pmx')
// Log routes and latency.
// You must do this BEFORE any require('http')
pmx.init({
http: true
})
}
// This packages must be after loading keymetrics and newrelic packages
var logger = require('../src/utils/composrLogger')
var version = require('../package.json').version
var hub = require('../src/lib/hub')
var uuid = require('uuid')
var serverID = uuid.v1()
module.exports = new Promise(function (resolve, reject) {
require('../src/app')(serverID)
.then(function (serverObjects) {
var port = config.get('port')
var server = serverObjects.app.listen(port, function () {
logger.info('CompoSR by BQ - listening on port ' + server.address().port)
logger.info('Server instance ID:', serverID)
logger.salute(config.get('serverName'), version, function () {
resolve(serverObjects)
hub.emit('server:start')
})
})
})
.catch(function (err) {
console.error('ERROR launching ' + config.get('serverName') + ' application', err)
logger.error('ERROR launching instance:', err)
reject(err)
})
})