summaryrefslogtreecommitdiffhomepage
path: root/packages/tauri/scripts/utils.ts
diff options
context:
space:
mode:
authorBrendan Allan <[email protected]>2025-12-06 04:39:49 +0800
committerGitHub <[email protected]>2025-12-05 14:39:49 -0600
commitcd6bfb3f694675246a67dc0466d7603a37833586 (patch)
tree9d5a4ae51553fbebd748428f1af4549c9adf8f16 /packages/tauri/scripts/utils.ts
parentba417d80b1174d0e289d8fc91c77a8f6a0d592f4 (diff)
downloadopencode-cd6bfb3f694675246a67dc0466d7603a37833586.tar.gz
opencode-cd6bfb3f694675246a67dc0466d7603a37833586.zip
OpenCode Desktop app (#5044)
Co-authored-by: Adam <[email protected]>
Diffstat (limited to 'packages/tauri/scripts/utils.ts')
-rw-r--r--packages/tauri/scripts/utils.ts43
1 files changed, 43 insertions, 0 deletions
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}`)
+}