25 lines
1.0 KiB
JavaScript
25 lines
1.0 KiB
JavaScript
#!/usr/bin/env node
|
|
import { spawn } from "node:child_process";
|
|
import { existsSync } from "node:fs";
|
|
import path from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
|
|
const binDir = path.dirname(fileURLToPath(import.meta.url));
|
|
const tsEntrypoint = path.join(binDir, "hwlab-cli.ts");
|
|
const repoRoot = path.resolve(binDir, "../../..");
|
|
const runBun = path.join(repoRoot, "scripts/run-bun.mjs");
|
|
const command = process.env.HWLAB_BUN_COMMAND || process.execPath;
|
|
const args = process.env.HWLAB_BUN_COMMAND
|
|
? [tsEntrypoint, ...process.argv.slice(2)]
|
|
: [runBun, tsEntrypoint, ...process.argv.slice(2)];
|
|
const child = spawn(command, args, { stdio: "inherit", env: process.env, cwd: repoRoot });
|
|
|
|
child.on("error", (error) => {
|
|
process.stderr.write(JSON.stringify({ ok: false, cli: "hwlab-cli", status: "failed", error: { code: "bun_spawn_failed", message: error.message } }, null, 2) + "\n");
|
|
process.exit(127);
|
|
});
|
|
child.on("exit", (code, signal) => {
|
|
if (signal) process.kill(process.pid, signal);
|
|
else process.exit(code ?? 0);
|
|
});
|