# Copyright 2025 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" 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 }