Summary: switch to httptoolkit Reviewers: kuba-orlik Reviewed By: kuba-orlik Differential Revision: https://hub.sealcode.org/D1578
52 lines
1.3 KiB
JavaScript
52 lines
1.3 KiB
JavaScript
import { WebSocketServer } from "ws";
|
|
import child_process from "child_process";
|
|
import fs from "fs";
|
|
|
|
async function spawnPromise(program, args) {
|
|
return new Promise((resolve, reject) => {
|
|
const process = child_process.spawn(program, args);
|
|
process.on("close", (_) => {
|
|
resolve();
|
|
});
|
|
});
|
|
}
|
|
|
|
const wss = new WebSocketServer({ port: 3000 });
|
|
|
|
//maybe check output of child processes and send errors in some way
|
|
wss.on("connection", (ws) => {
|
|
ws.on("message", async (dataBuf) => {
|
|
let data = dataBuf.toString();
|
|
if (data === "screenshot") {
|
|
await spawnPromise("bash", ["/conf/screenshot.sh"]);
|
|
ws.send(fs.readFileSync("/screenshot.png"));
|
|
} else if (data.includes("touch")) {
|
|
const dataSplit = data.split(" ");
|
|
await spawnPromise("bash", [
|
|
"/conf/touch.sh",
|
|
dataSplit[1],
|
|
dataSplit[2],
|
|
]);
|
|
} else if (data === "back") {
|
|
await spawnPromise("bash", ["/conf/back.sh"]);
|
|
} else if (data === "home") {
|
|
await spawnPromise("bash", ["/conf/home.sh"]);
|
|
} else if (data === "install") {
|
|
await spawnPromise("bash", ["/conf/install.sh"]);
|
|
} else if (data.includes("drag")) {
|
|
const dataSplit = data.split(" ");
|
|
|
|
await spawnPromise("bash", [
|
|
"/conf/drag.sh",
|
|
dataSplit[1],
|
|
dataSplit[2],
|
|
dataSplit[3],
|
|
dataSplit[4],
|
|
]);
|
|
}
|
|
});
|
|
ws.on("close", (_) => {
|
|
ws.close();
|
|
});
|
|
});
|