#!/usr/bin/env node 'use strict'; /* eslint no-console: 0 */ const Path = require('path'); const Getenv = require('getenv'); const TomatoSauce = require('..'); const Util = require('../lib/util'); const config = { port: Getenv.int('TOMATO_SAUCE_PORT', 7777), frequency: Getenv.int('TOMATO_SAUCE_FREQUENCY', 333), modulation: Getenv.int('TOMATO_SAUCE_MODULATION_SPEED', 5) }; const screenPath = Getenv('TOMATO_SAUCE_SCREEN_PATH', Path.join(__dirname, '../lib/screens')); const rendererPath = Getenv('TOMATO_SAUCE_RENDERER_PATH', Path.join(__dirname, '../lib/renderers')); Util.loadFiles(screenPath).then((screens) => { config.screens = screens; return Util.loadFiles(rendererPath); }) .then((renderers) => { config.renderers = renderers; }) .then(() => { const tomatoSauce = new TomatoSauce(config); tomatoSauce.on('listening', (event) => { const address = event.data.server.address(); console.log(`Tomato Sauce listening on: ${address.address}:${address.port}`); }); tomatoSauce.on('error', (error) => { console.error(error.stack || error.message || error); process.exit(1); }); tomatoSauce.run(); });