]>
Commit | Line | Data |
---|---|---|
1 | #!/usr/bin/env node | |
2 | ||
3 | 'use strict'; | |
4 | ||
5 | /* eslint no-console: 0 */ | |
6 | ||
7 | const Path = require('path'); | |
8 | const Getenv = require('getenv'); | |
9 | ||
10 | const TomatoSauce = require('..'); | |
11 | const Util = require('../lib/util'); | |
12 | ||
13 | const config = { | |
14 | port: Getenv.int('TOMATO_SAUCE_PORT', 7777), | |
15 | frequency: Getenv.int('TOMATO_SAUCE_FREQUENCY', 333), | |
16 | modulation: Getenv.int('TOMATO_SAUCE_MODULATION_SPEED', 5) | |
17 | }; | |
18 | ||
19 | const screenPath = Getenv('TOMATO_SAUCE_SCREEN_PATH', Path.join(__dirname, '../lib/screens')); | |
20 | const rendererPath = Getenv('TOMATO_SAUCE_RENDERER_PATH', Path.join(__dirname, '../lib/renderers')); | |
21 | ||
22 | Util.loadFiles(screenPath).then((screens) => { | |
23 | ||
24 | config.screens = screens; | |
25 | return Util.loadFiles(rendererPath); | |
26 | }) | |
27 | .then((renderers) => { | |
28 | ||
29 | config.renderers = renderers; | |
30 | }) | |
31 | .then(() => { | |
32 | ||
33 | const tomatoSauce = new TomatoSauce(config); | |
34 | ||
35 | tomatoSauce.on('listening', (event) => { | |
36 | ||
37 | const address = event.data.server.address(); | |
38 | console.log(`Tomato Sauce listening on: ${address.address}:${address.port}`); | |
39 | }); | |
40 | ||
41 | tomatoSauce.on('error', (error) => { | |
42 | ||
43 | console.error(error.stack || error.message || error); | |
44 | process.exit(1); | |
45 | }); | |
46 | ||
47 | tomatoSauce.run(); | |
48 | }); |