diff --git a/packages/opencode/bin/opencode.cmd b/packages/opencode/bin/opencode.cmd index 775bfe6886..61dc204052 100644 --- a/packages/opencode/bin/opencode.cmd +++ b/packages/opencode/bin/opencode.cmd @@ -52,6 +52,8 @@ echo It seems that your package manager failed to install the right version of t exit /b 1 :execute +rem Remove quotes from resolved path if present +set "resolved=%resolved:"=%" rem Execute the binary with all arguments in the same console window rem Use start /b /wait to ensure it runs in the current shell context for all shells start /b /wait "" "%resolved%" %* diff --git a/packages/opencode/bin/run.js b/packages/opencode/bin/run.js new file mode 100644 index 0000000000..678689c4d1 --- /dev/null +++ b/packages/opencode/bin/run.js @@ -0,0 +1,24 @@ +import { spawn } from "child_process" +import path from "path" +import { fileURLToPath } from "url" + +const __filename = fileURLToPath(import.meta.url) +const __dirname = path.dirname(__filename) + +const command = process.platform === "win32" ? "opencode.cmd" : "opencode" +const commandPath = path.join(__dirname, command) +const args = process.argv.slice(2) + +const child = spawn(commandPath, args, { + stdio: "inherit", + shell: process.platform === "win32", +}) + +child.on("exit", (code) => { + process.exit(code === null ? 1 : code) +}) + +child.on("error", (err) => { + console.error(`Failed to start subprocess: ${err}`) + process.exit(1) +}) diff --git a/packages/opencode/package.json b/packages/opencode/package.json index aef7ca3a3e..cc0d4e48e0 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -12,7 +12,7 @@ "random": "echo 'Random script updated at $(date)'" }, "bin": { - "opencode": "./bin/opencode" + "opencode": "./bin/run.js" }, "exports": { "./*": "./src/*.ts" diff --git a/packages/script/src/index.ts b/packages/script/src/index.ts index d5b2c9e4a5..979c2e37cd 100644 --- a/packages/script/src/index.ts +++ b/packages/script/src/index.ts @@ -1,7 +1,7 @@ import { $ } from "bun" -if (process.versions.bun !== "1.3.0") { - throw new Error("This script requires bun@1.3.0") +if (!process.versions.bun.startsWith("1.3.")) { + throw new Error("This script requires bun@1.3+") } const CHANNEL = process.env["OPENCODE_CHANNEL"] ?? (await $`git branch --show-current`.text().then((x) => x.trim()))