1 | var dataflows = require('dataflo.ws');
|
2 | var minimist = require('minimist');
|
3 |
|
4 | module.exports = {
|
5 | launchContext: function () {
|
6 | return {
|
7 | configKey: process.argv[3],
|
8 | method: process.argv[4],
|
9 | args: minimist(process.argv.slice(5))
|
10 | };
|
11 | },
|
12 | launch: function (conf) {
|
13 | var daemonName = this.launchContext().configKey;
|
14 | var configDaemonNames = Object.keys(conf.daemon);
|
15 | if (daemonName == undefined && configDaemonNames.length == 1)
|
16 | daemonName = configDaemonNames[0];
|
17 | if (!conf.daemon || !conf.daemon[daemonName]) {
|
18 |
|
19 | console.error(
|
20 | 'No daemon named "%s" found in configuration', daemonName
|
21 | );
|
22 | var logDaemonNames = configDaemonNames.join ('", "');
|
23 | console.error ('You can select one from those daemon configurations: "%s"', logDaemonNames);
|
24 | process.exit();
|
25 | }
|
26 | var daemonConf = conf.daemon[daemonName];
|
27 | var initiatorTypes = daemonConf.initiator;
|
28 |
|
29 | var initiators = {};
|
30 |
|
31 | initiatorTypes.forEach(function (initiatorType) {
|
32 | var initiatorConf = conf.initiator[initiatorType];
|
33 |
|
34 |
|
35 | var initiatorClass = dataflows.initiator(initiatorType);
|
36 |
|
37 | if ('function' == typeof initiatorClass) {
|
38 | initiators[initiatorType] = new initiatorClass (initiatorConf, initiators);
|
39 | } else {
|
40 | console.error('Cannot load initiator "%s"', initiatorType);
|
41 | }
|
42 | });
|
43 |
|
44 | }
|
45 | }
|