UNPKG

guvnor

Version:

A node process manager that isn't spanners all the way down

57 lines (50 loc) 2.35 kB
require('colors') var Container = require('wantsit').Container var winston = require('winston') var path = require('path') var connectOrStart = require('../local').connectOrStart var running = require('../local').running var coerce = require('coercer') module.exports = function () { var logLevel = (process.argv.indexOf('--verbose') !== -1 || process.argv.indexOf('-v') !== -1) ? 'debug' : 'warn' var container = new Container() container.register('config', coerce(require('rc')('guvnor/guvnor', path.resolve(__dirname, '../../guvnor')))) container.register('logger', new winston.Logger({ transports: [ new winston.transports.Console({ colorize: true, level: logLevel }) ] })) container.register('connectOrStart', connectOrStart.bind(null, container.find('config'), container.find('logger'))) container.register('running', running.bind(null, container.find('config'), container.find('logger'))) container.register('posix', require('posix')) container.register('commander', require('./commander')) container.register('package', require('../../package.json')) container.register('moment', require('moment')) container.register('user', require('posix').getpwnam(process.getuid())) container.register('group', require('posix').getgrnam(process.getgid())) container.register('formatMemory', require('prettysize')) container.register('os', require('os')) container.register('fs', require('fs')) container.register('execSync', require('../common/ExecSync')) container.register('prompt', require('prompt')) container.register('child_process', require('child_process')) container.createAndRegister('apps', require('./Apps')) container.createAndRegister('cluster', require('./Cluster')) container.createAndRegister('daemon', require('./Daemon')) container.createAndRegister('processes', require('./Processes')) container.createAndRegister('remote', require('./Remote')) container.createAndRegister('cli', require('./CLI')) process.on('uncaughtException', function (error) { var logger = container.find('logger') if (logLevel === 'debug') { logger.error('Uncaught exception', error.message) logger.error(error.stack) } else if (error.message && error.message !== 'undefined') { logger.error(error.message) } process.exit(1) }) }