66 lines
1.9 KiB
Bash
66 lines
1.9 KiB
Bash
# Copyright 2026 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
DESCRIPTION="The open source AI coding agent"
|
|
HOMEPAGE="https://opencode.ai https://github.com/anomalyco/opencode"
|
|
|
|
GITHUB_BASE="https://github.com/anomalyco/opencode/releases/download/v${PV}"
|
|
if [[ ${PV} == 9999 ]]; then
|
|
PROPERTIES+=" live"
|
|
GITHUB_BASE="https://github.com/anomalyco/opencode/releases/latest/download"
|
|
else
|
|
SRC_URI="
|
|
amd64? (
|
|
cpu_flags_x86_avx2? (
|
|
elibc_glibc? ( ${GITHUB_BASE}/opencode-linux-x64.tar.gz -> ${P}-amd64.tar.gz )
|
|
elibc_musl? ( ${GITHUB_BASE}/opencode-linux-x64-musl.tar.gz -> ${P}-amd64-musl.tar.gz )
|
|
)
|
|
!cpu_flags_x86_avx2? (
|
|
elibc_glibc? ( ${GITHUB_BASE}/opencode-linux-x64-baseline.tar.gz -> ${P}-amd64-baseline.tar.gz )
|
|
elibc_musl? ( ${GITHUB_BASE}/opencode-linux-x64-baseline-musl.tar.gz -> ${P}-amd64-baseline-musl.tar.gz )
|
|
)
|
|
)
|
|
arm64? (
|
|
elibc_glibc? ( ${GITHUB_BASE}/opencode-linux-arm64.tar.gz -> ${P}-arm64.tar.gz )
|
|
elibc_musl? ( ${GITHUB_BASE}/opencode-linux-arm64-musl.tar.gz -> ${P}-arm64-musl.tar.gz )
|
|
)
|
|
"
|
|
KEYWORDS="~amd64 ~arm64"
|
|
fi
|
|
|
|
S="${WORKDIR}"
|
|
LICENSE="MIT"
|
|
SLOT="0"
|
|
IUSE="cpu_flags_x86_avx2"
|
|
RESTRICT="mirror strip"
|
|
|
|
[[ ${PV} == 9999 ]] && BDEPEND+=" net-misc/curl"
|
|
|
|
QA_PREBUILT="usr/bin/opencode"
|
|
|
|
src_unpack() {
|
|
if [[ ${PV} == 9999 ]]; then
|
|
local arch suffix=""
|
|
case ${ARCH} in
|
|
amd64) arch="x64" ;;
|
|
arm64) arch="arm64" ;;
|
|
*) die "Unsupported architecture: ${ARCH}" ;;
|
|
esac
|
|
[[ ${ARCH} == amd64 ]] && ! use cpu_flags_x86_avx2 && suffix+="-baseline"
|
|
use elibc_musl && suffix+="-musl"
|
|
|
|
local filename="opencode-linux-${arch}${suffix}.tar.gz"
|
|
einfo "Downloading opencode latest release: ${filename}"
|
|
curl -L -o "${WORKDIR}/${filename}" "${GITHUB_BASE}/${filename}" || die "Failed to download"
|
|
cd "${WORKDIR}" || die
|
|
tar -xzf "${filename}" || die "Failed to extract"
|
|
else
|
|
default_src_unpack
|
|
fi
|
|
}
|
|
|
|
src_install() {
|
|
dobin opencode
|
|
}
|