#!/usr/bin/node const { INFO, DEBUG } = require('DOUGAL_ROOT/debug')(__filename); async function main () { // Check that we're running against the correct database version const version = require('./lib/version'); INFO("Running version", await version.describe()); version.compatible() .then( (versions) => { const api = require('./api'); const ws = require('./ws'); const { fork } = require('child_process'); const server = api.start(process.env.HTTP_PORT || 3000, process.env.HTTP_PATH); ws.start(server); const eventManagerPath = [__dirname, "events"].join("/"); const eventManager = fork(eventManagerPath, /*{ stdio: 'ignore' }*/); INFO("Versions:", versions); process.on('exit', () => eventManager.kill()); }) .catch( ({current, wanted, component}) => { console.error(`Fatal error: incompatible ${component} version ${current} (wanted: ${wanted})`); ERROR(`Fatal error: incompatible ${component} version ${current} (wanted: ${wanted})`); process.exit(1); }); } main();