Kuba Orlik 0a6e04c5ba simulate screen dragging
Summary: Ref T2890

Reviewers: #reviewers

Subscribers: kuba-orlik

Maniphest Tasks: T2890

Differential Revision: https://hub.sealcode.org/D1410
2025-01-18 16:45:40 +01:00

56 lines
1.5 KiB
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")) {
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.includes("drag")) {
const dataSplit = data.split(" ");
await spawnPromise("bash", [
"/conf/drag.sh",
dataSplit[1],
dataSplit[2],
dataSplit[3],
dataSplit[4],
]);
}
});
socket.on("close", (_) => {
socket.end();
});
});
server.listen(3000, () => {
console.log("listening on 3000");
});