feat: add relay:tmux helper for relay watcher

This commit is contained in:
Peter Steinberger
2025-11-25 05:47:06 +01:00
parent f2438f82ab
commit 729ae64822
2 changed files with 43 additions and 0 deletions

29
src/cli/relay_tmux.ts Normal file
View File

@@ -0,0 +1,29 @@
import { spawn } from "node:child_process";
const SESSION = "warelay-relay";
export async function spawnRelayTmux(cmd = "pnpm warelay relay --verbose") {
await killSession(SESSION);
await new Promise<void>((resolve, reject) => {
const child = spawn("tmux", ["new", "-d", "-s", SESSION, cmd], {
stdio: "inherit",
shell: false,
});
child.on("error", reject);
child.on("exit", (code) => {
if (code === 0) resolve();
else reject(new Error(`tmux exited with code ${code}`));
});
});
return SESSION;
}
async function killSession(name: string) {
await new Promise<void>((resolve) => {
const child = spawn("tmux", ["kill-session", "-t", name], {
stdio: "ignore",
});
child.on("exit", () => resolve());
child.on("error", () => resolve());
});
}