summaryrefslogtreecommitdiff
path: root/server/index.js
blob: b0bfd425a1fd0567960665ab20d8ee799047244c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
const cp = require('child_process');
let processes = {};

let serverlets = [
    "authentication",
    "keyserver",
    "profile",
    "verification",
    "presence",
    "conversation"
]

for (let serverlet of serverlets) {
    startServerlet(serverlet);
}

function startServerlet(serverlet) {
    console.log("Starting " + serverlet + "...");
    processes[serverlet] = cp.spawn("node", [ "hornchat." + serverlet + ".js" ], { stdio: "pipe" });
    console.log("[" + serverlet + "] (PID: " + processes[serverlet].pid + ")")

    processes[serverlet].stdout.on('data', (data) => {
        let lines = data.toString().trim().split("\n");
        for (let line of lines) {
            console.log("[" + serverlet + "] " + line);
        }
    })

    processes[serverlet].stderr.on('data', (data) => {
        let lines = data.toString().trim().split("\n");
        for (let line of lines) {
            console.error("[" + serverlet + "] " + line);
        }
    })

    processes[serverlet].on('close', () => {
        startServerlet(serverlet);
    })
}