UNPKG

asch-redeploy

Version:

A hassle-free local asch environment

56 lines (48 loc) 1.48 kB
/* needs to be called first */ const DI = require('./src/DI') let startUpCheck = DI.container.get(DI.FILETYPES.StartUpCheck) const utils = require('./src/utils') const Promise = require('bluebird') const logger = require('./src/logger') // https://www.exratione.com/2013/05/die-child-process-die/ process.once('uncaughtException', function (error) { logger.error('UNCAUGHT EXCEPTION') logger.error(error.stack) }) const Conductor = require('./src/orchestration/conductor') let aschService = DI.container.get(DI.FILETYPES.Service) let appConfig = DI.container.get(DI.DEPENDENCIES.Config) aschService.notifier.on('exit', function (code) { logger.warn(`asch-node terminated with code ${code}`) }) process.on('SIGTERM', function () { logger.warn('SIGTERM', { meta: 'inverse' }) aschService.stop() process.exit(0) }) process.on('SIGINT', function () { // ctrl+c logger.warn('SIGTERM', { meta: 'inverse' }) aschService.stop() process.exit(0) }) logger.verbose('starting asch-redeploy...') startUpCheck.check() .then(() => { return aschService.start() }) .then(() => { let ms = 7000 logger.verbose(`waiting for ${ms}ms`) return Promise.delay(ms) }) .then(() => { logger.verbose('starting to orchestrate...') let conductor = new Conductor(aschService, appConfig) return conductor.orchestrate() }) .catch((err) => { // last error handler logger.error(err.message) logger.error(err.stack) utils.endProcess() })