diff options
author | Minteck <contact@minteck.org> | 2022-11-28 17:31:34 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-11-28 17:31:34 +0100 |
commit | 7923aa8942b55884320ef2428417e3ee4b121613 (patch) | |
tree | 7993632f2898b1998f25b11ce40a8d2eb3d44730 /MistyCore/socket.js | |
download | mistyos-og-mane.tar.gz mistyos-og-mane.tar.bz2 mistyos-og-mane.zip |
Diffstat (limited to 'MistyCore/socket.js')
-rw-r--r-- | MistyCore/socket.js | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/MistyCore/socket.js b/MistyCore/socket.js new file mode 100644 index 0000000..0db4f5b --- /dev/null +++ b/MistyCore/socket.js @@ -0,0 +1,68 @@ +log("MistyCore-Socket", "Installing socket..."); +const net = require('net'); +const fs = require('fs'); +const unixSocketServer = net.createServer(); + +if (fs.existsSync(systemRoot + "/../Volumes/VM/MistyCore-Socket")) fs.unlinkSync(systemRoot + "/../Volumes/VM/MistyCore-Socket"); + +unixSocketServer.listen(systemRoot + "/../Volumes/VM/MistyCore-Socket", () => { + log("MistyCore-Socket", "Socket ready"); +}); + +unixSocketServer.on('connection', (s) => { + s.on('data', function (msg) { + try { + let data = JSON.parse(msg.toString()); + + if (!data.action || !data.payload) { + log("MistyCore-Socket", "Received data but it is not correctly formatted:\n" + e.stack); + } else { + switch (data.action) { + case "LOG": + log(data.payload.service ?? "<unknown>", data.payload.text ?? "<unknown>"); + break; + + case "SHUTDOWN": + require('./power')(false); + break; + + case "REBOOT": + require('./power')(true); + break; + + case "SERVICE": + switch (data.payload.option) { + case "restart": + services.restart(data.payload.service); + break; + + case "stop": + services.stop(data.payload.service); + break; + + case "forcestop": + services.stop(data.payload.service, true); + break; + + case "start": + services.start(data.payload.service, true); + break; + + default: + log("MistyCore-Socket", "Received unrecognized launch daemon command: " + data.payload.option); + break; + } + break; + + default: + log("MistyCore-Socket", "Received data but the action is not recognized:\n" + data.action); + break; + } + } + } catch (e) { + log("MistyCore-Socket", "Received data but unable to decode it:\n" + e.stack); + } + }); + + s.end(); +});
\ No newline at end of file |