From cd6bfb3f694675246a67dc0466d7603a37833586 Mon Sep 17 00:00:00 2001 From: Brendan Allan Date: Sat, 6 Dec 2025 04:39:49 +0800 Subject: OpenCode Desktop app (#5044) Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> --- packages/tauri/scripts/utils.ts | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 packages/tauri/scripts/utils.ts (limited to 'packages/tauri/scripts/utils.ts') diff --git a/packages/tauri/scripts/utils.ts b/packages/tauri/scripts/utils.ts new file mode 100644 index 000000000..b2885d00a --- /dev/null +++ b/packages/tauri/scripts/utils.ts @@ -0,0 +1,43 @@ +import { $ } from "bun" + +export const SIDECAR_BINARIES: Array<{ rustTarget: string; ocBinary: string; assetExt: string }> = [ + { + rustTarget: "aarch64-apple-darwin", + ocBinary: "opencode-darwin-arm64", + assetExt: "zip", + }, + { + rustTarget: "x86_64-apple-darwin", + ocBinary: "opencode-darwin-x64", + assetExt: "zip", + }, + { + rustTarget: "x86_64-pc-windows-msvc", + ocBinary: "opencode-windows-x64", + assetExt: "zip", + }, + { + rustTarget: "x86_64-unknown-linux-gnu", + ocBinary: "opencode-linux-x64", + assetExt: "tar.gz", + }, +] + +export const RUST_TARGET = Bun.env.RUST_TARGET + +export function getCurrentSidecar(target = RUST_TARGET) { + if (!target && !RUST_TARGET) throw new Error("RUST_TARGET not set") + + const binaryConfig = SIDECAR_BINARIES.find((b) => b.rustTarget === target) + if (!binaryConfig) throw new Error(`Sidecar configuration not available for Rust target '${RUST_TARGET}'`) + + return binaryConfig +} + +export async function copyBinaryToSidecarFolder(source: string, target = RUST_TARGET) { + await $`mkdir -p src-tauri/sidecars` + const dest = `src-tauri/sidecars/opencode-${target}${process.platform === "win32" ? ".exe" : ""}` + await $`cp ${source} ${dest}` + + console.log(`Copied ${source} to ${dest}`) +} -- cgit v1.2.3