29 lines
1,002 B
TypeScript
29 lines
1,002 B
TypeScript
import { $ } from "bun"
|
|
|
|
export { getCurrentSidecar, getServerTarget, RUST_TARGET, SIDECAR_BINARIES } from "./target"
|
|
|
|
export type Channel = "dev" | "beta" | "prod"
|
|
|
|
export function resolveChannel(): Channel {
|
|
const raw = Bun.env.OPENCODE_CHANNEL
|
|
if (raw === "dev" || raw === "beta" || raw === "prod") return raw
|
|
return "dev"
|
|
}
|
|
|
|
export async function copyBinaryToSidecarFolder(source: string) {
|
|
const dir = `resources`
|
|
await $`mkdir -p ${dir}`
|
|
const dest = windowsify(`${dir}/opencode-cli`)
|
|
await $`cp ${source} ${dest}`
|
|
if (process.platform === "win32" && process.env.GITHUB_ACTIONS === "true") {
|
|
await $`pwsh -NoLogo -NoProfile -ExecutionPolicy Bypass -File ../../script/sign-windows.ps1 ${dest}`
|
|
}
|
|
if (process.platform === "darwin") await $`codesign --force --sign - ${dest}`
|
|
|
|
console.log(`Copied ${source} to ${dest}`)
|
|
}
|
|
|
|
export function windowsify(path: string) {
|
|
if (path.endsWith(".exe")) return path
|
|
return `${path}${process.platform === "win32" ? ".exe" : ""}`
|
|
}
|