feat: consolidate agent execution stack
This commit is contained in:
40
scripts/wait-for-port.mjs
Normal file
40
scripts/wait-for-port.mjs
Normal file
@@ -0,0 +1,40 @@
|
||||
import net from "node:net";
|
||||
|
||||
const [host, portStr, timeoutStr] = process.argv.slice(2);
|
||||
const port = Number.parseInt(portStr ?? "", 10);
|
||||
const timeoutMs = Number.parseInt(timeoutStr ?? "30000", 10);
|
||||
|
||||
if (!host || Number.isNaN(port)) {
|
||||
console.error("Usage: node wait-for-port.mjs <host> <port> [timeoutMs]");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const start = Date.now();
|
||||
|
||||
function tryConnect() {
|
||||
const socket = new net.Socket();
|
||||
socket.setTimeout(1000);
|
||||
socket.once("connect", () => {
|
||||
socket.destroy();
|
||||
process.exit(0);
|
||||
});
|
||||
socket.once("error", () => {
|
||||
socket.destroy();
|
||||
if (Date.now() - start > timeoutMs) {
|
||||
console.error(`Timed out waiting for ${host}:${port}`);
|
||||
process.exit(1);
|
||||
}
|
||||
setTimeout(tryConnect, 500);
|
||||
});
|
||||
socket.once("timeout", () => {
|
||||
socket.destroy();
|
||||
if (Date.now() - start > timeoutMs) {
|
||||
console.error(`Timed out waiting for ${host}:${port}`);
|
||||
process.exit(1);
|
||||
}
|
||||
setTimeout(tryConnect, 500);
|
||||
});
|
||||
socket.connect(port, host);
|
||||
}
|
||||
|
||||
tryConnect();
|
||||
Reference in New Issue
Block a user