mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 18:38:55 +00:00
Fixes #23333, Fixes #13978 ### What does this PR do? ### How did you verify your code works? --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Claude Bot <claude-bot@bun.sh> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: pfg <pfg@pfg.pw> Co-authored-by: Zack Radisic <zack@theradisic.com>
42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
import { spawn } from "node:child_process";
|
|
import { dirname, join } from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
|
|
process.stdin.setRawMode(true);
|
|
|
|
process.stdin.on("data", chunk => {
|
|
const chunkStr = chunk.toString("utf-8");
|
|
console.log("PARENT: received " + JSON.stringify(chunkStr));
|
|
if (chunkStr.includes("\x03")) {
|
|
console.log("PARENT: exiting.");
|
|
process.stdin.pause();
|
|
process.stdin.removeAllListeners();
|
|
process.stdin.unref();
|
|
console.log("%ready%");
|
|
}
|
|
|
|
if (!chunkStr.includes("\n") && !chunkStr.includes("\r")) {
|
|
console.log("%ready%");
|
|
return;
|
|
}
|
|
console.log("PARENT: pause");
|
|
process.stdin.pause();
|
|
process.stdin.setRawMode(false);
|
|
|
|
const childScript = join(__dirname, "child-reader.mjs");
|
|
const child = spawn(process.execPath, [childScript], { stdio: "inherit" });
|
|
|
|
child.on("exit", code => {
|
|
console.log("PARENT: child exited with code " + code + ". reading again.");
|
|
process.stdin.resume();
|
|
process.stdin.setRawMode(true);
|
|
console.log("%ready%");
|
|
});
|
|
});
|
|
|
|
console.log("PARENT: reading");
|
|
|
|
console.log("%ready%");
|