UNPKG

1.43 kBJavaScriptView Raw
1var dataflows = require('dataflo.ws');
2var minimist = require('minimist');
3
4module.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 // TODO: add description for daemon config generation
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 // setters and getters is a flimsy shim for languages
34 // without lvalue
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}