Files
omarchy-pkgs/pkgbuilds/opencode/PKGBUILD
T
2025-11-11 12:37:18 -05:00

61 lines
1.5 KiB
Bash

# Maintainer: dax
# Maintainer: adam
pkgname='opencode'
pkgver=1.0.55
_subver=
options=('!debug' '!strip')
pkgrel=1
pkgdesc='The AI coding agent built for the terminal.'
url='https://github.com/sst/opencode'
arch=('aarch64' 'x86_64')
license=('MIT')
provides=('opencode')
conflicts=('opencode-bin')
depends=('fzf' 'ripgrep')
makedepends=('git' 'bun-bin' 'go' 'npm')
source=("opencode-${pkgver}.tar.gz::https://github.com/sst/opencode/archive/v${pkgver}${_subver}.tar.gz")
sha256sums=('3db64a1cd6f0b1163e50092aeac73ba21144d8bacbe52c70b1493ba2e52dd05b')
prepare() {
cd "opencode-${pkgver}"
# Patch package.json to accept bun 1.3.2 instead of locked 1.3.1
sed -i 's/"packageManager": "bun@1\.3\.1"/"packageManager": "bun@1.3.2"/' package.json
}
build() {
cd "opencode-${pkgver}"
# Ensure npm is in PATH for bun's shell
export PATH="/usr/bin:$PATH"
# Install workspace dependencies from root
bun install
# The build script uses relative imports like ../node_modules/...
# Create symlink so packages/opencode/node_modules points to root node_modules
cd packages/opencode
ln -sf ../../node_modules node_modules
# Build the binary
OPENCODE_CHANNEL=latest OPENCODE_VERSION=${pkgver} bun run build --single
}
package() {
cd "opencode-${pkgver}/packages/opencode"
# Determine architecture for the binary path
case "${CARCH}" in
x86_64)
_arch="x64"
;;
aarch64)
_arch="arm64"
;;
esac
install -Dm755 "./dist/opencode-linux-${_arch}/bin/opencode" "${pkgdir}/usr/bin/opencode"
}