# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit shell-completion

DESCRIPTION="Incredibly fast JavaScript runtime, bundler, test runner, and package manager"
HOMEPAGE="https://bun.sh https://github.com/oven-sh/bun"
SRC_URI="
	amd64? ( https://github.com/oven-sh/bun/releases/download/bun-v${PV}/bun-linux-x64.zip -> ${P}-amd64.zip )
	arm64? ( https://github.com/oven-sh/bun/releases/download/bun-v${PV}/bun-linux-aarch64.zip -> ${P}-arm64.zip )
"
S="${WORKDIR}"

LICENSE="MIT"
SLOT="0"
KEYWORDS="-* ~amd64 ~arm64"

IUSE="+symlink"

BDEPEND="app-arch/unzip"
RDEPEND="
	symlink? ( !net-libs/nodejs !net-libs/nodejs-bin )
"

RESTRICT="strip"

QA_PREBUILT="usr/bin/bun"

src_prepare() {
	default
	mv bun-linux*/bun . || die "Failed to move bun binary"
	# generate shell completion scripts
	for sh in bash fish zsh; do
		env SHELL=${sh} "${S}/bun" completions ${sh} > "${WORKDIR}/completion.${sh}"
	done
}

src_install() {
	dobin bun
	dosym bun /usr/bin/bunx
	use symlink && dosym bun /usr/bin/node # fix env: node: No such file or directory

	newbashcomp completion.bash "${PN}"
	newfishcomp completion.fish "${PN}".fish
	newzshcomp completion.zsh _"${PN}"
}