Files
neuron/packages/opencode/src/bun/index.ts
T
2025-05-31 14:41:00 -04:00

33 lines
802 B
TypeScript

import path from "path"
import { Log } from "../util/log"
export namespace BunProc {
const log = Log.create({ service: "bun" })
export function run(
cmd: string[],
options?: Bun.SpawnOptions.OptionsObject<any, any, any>,
) {
const root =
process.argv0 !== "bun"
? path.resolve(process.cwd(), process.argv0)
: process.argv0
log.info("running", {
cmd: [root, ...cmd],
options,
})
const result = Bun.spawnSync([root, ...cmd], {
...options,
argv0: "bun",
env: {
...process.env,
...options?.env,
},
})
if (result.exitCode !== 0) {
console.error(result.stderr?.toString("utf8") ?? "")
throw new Error(`Command failed with exit code ${result.exitCode}`)
}
return result
}
}