diff options
author | Minteck <contact@minteck.org> | 2022-08-10 10:38:44 +0200 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-08-10 10:38:44 +0200 |
commit | c6dbf0450566c40efc4a26f4f0717452b6ef95cd (patch) | |
tree | b4be2d508223820d0a77d5a3e35e82684da3b6ec /server/index.js | |
download | hornchat-mane.tar.gz hornchat-mane.tar.bz2 hornchat-mane.zip |
Diffstat (limited to 'server/index.js')
-rw-r--r-- | server/index.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/server/index.js b/server/index.js new file mode 100644 index 0000000..b0bfd42 --- /dev/null +++ b/server/index.js @@ -0,0 +1,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); + }) +}
\ No newline at end of file |