bq/corbel-composr

View on GitHub
bin/composr.js

Summary

Maintainability
A
0 mins
Test Coverage
#!/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)
    })
})