Reviewers: #testers, kuba-orlik Reviewed By: #testers, kuba-orlik Subscribers: kuba-orlik Maniphest Tasks: T2741 Differential Revision: https://hub.sealcode.org/D1354
42 lines
1008 B
JavaScript
42 lines
1008 B
JavaScript
const net = require("net");
|
|
const child_process = require("child_process");
|
|
const fs = require("fs");
|
|
|
|
const server = net.createServer();
|
|
|
|
async function spawnPromise(program, args) {
|
|
return new Promise((resolve, reject) => {
|
|
const process = child_process.spawn(program, args);
|
|
process.on("close", (_) => {
|
|
resolve();
|
|
});
|
|
});
|
|
}
|
|
|
|
//maybe check output of child processe and send errors in some way
|
|
server.on("connection", (socket) => {
|
|
socket.on("data", async (dataBuf) => {
|
|
data = dataBuf.toString();
|
|
if (data === "screenshot") {
|
|
socket.write("start");
|
|
await spawnPromise("bash", ["/conf/screenshot.sh"]);
|
|
socket.write(fs.readFileSync("/screenshot.png"));
|
|
socket.write("ENDOFMSG");
|
|
} else if (data.includes("touch")) {
|
|
dataSplit = data.split(" ");
|
|
await spawnPromise("bash", [
|
|
"/conf/touch.sh",
|
|
dataSplit[1],
|
|
dataSplit[2],
|
|
]);
|
|
}
|
|
});
|
|
socket.on("close", (_) => {
|
|
socket.end();
|
|
});
|
|
});
|
|
|
|
server.listen(3000, () => {
|
|
console.log("listening on 3000");
|
|
});
|