From 2384c7e734eb0316bc3f1f85bd1ca2983547a1e2 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Tue, 24 Jun 2025 18:40:36 -0400 Subject: [PATCH] ci: windows --- packages/opencode/bin/opencode.cmd | 56 ++++++++++++++++++++++++++++++ packages/opencode/package.json | 3 ++ 2 files changed, 59 insertions(+) create mode 100644 packages/opencode/bin/opencode.cmd diff --git a/packages/opencode/bin/opencode.cmd b/packages/opencode/bin/opencode.cmd new file mode 100644 index 00000000..8bac765c --- /dev/null +++ b/packages/opencode/bin/opencode.cmd @@ -0,0 +1,56 @@ +@echo off +setlocal enabledelayedexpansion + +if defined OPENCODE_BIN_PATH ( + set "resolved=%OPENCODE_BIN_PATH%" + goto :execute +) + +rem Get the directory of this script +set "script_dir=%~dp0" +set "script_dir=%script_dir:~0,-1%" + +rem Detect platform and architecture +set "platform=win32" + +rem Detect architecture +if "%PROCESSOR_ARCHITECTURE%"=="AMD64" ( + set "arch=x64" +) else if "%PROCESSOR_ARCHITECTURE%"=="ARM64" ( + set "arch=arm64" +) else if "%PROCESSOR_ARCHITECTURE%"=="x86" ( + set "arch=x86" +) else ( + set "arch=x64" +) + +set "name=opencode-!platform!-!arch!" +set "binary=opencode.exe" + +rem Search for the binary starting from script location +set "resolved=" +set "current_dir=%script_dir%" + +:search_loop +set "candidate=%current_dir%\node_modules\%name%\bin\%binary%" +if exist "%candidate%" ( + set "resolved=%candidate%" + goto :execute +) + +rem Move up one directory +for %%i in ("%current_dir%") do set "parent_dir=%%~dpi" +set "parent_dir=%parent_dir:~0,-1%" + +rem Check if we've reached the root +if "%current_dir%"=="%parent_dir%" goto :not_found +set "current_dir=%parent_dir%" +goto :search_loop + +:not_found +echo It seems that your package manager failed to install the right version of the OpenCode CLI for your platform. You can try manually installing the "%name%" package >&2 +exit /b 1 + +:execute +rem Execute the binary with all arguments +"%resolved%" %* \ No newline at end of file diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 25b7f711..711eb618 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -8,6 +8,9 @@ "typecheck": "tsc --noEmit", "dev": "bun run ./src/index.ts" }, + "bin": { + "opencode": "./bin/opencode" + }, "exports": { "./*": "./src/*.ts" },