# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit go-module shell-completion sysroot

DESCRIPTION="A source-level debugger for the Go programming language"
HOMEPAGE="https://github.com/go-delve/delve"
SRC_URI="https://github.com/go-delve/delve/archive/v${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="MIT BSD BSD-2 Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"

src_prepare() {
	default

	# disable failing tests, require network
	rm cmd/dlv/dlv_test.go || die
	sed -e 's/TestGuessSubstitutePath/_&/' -i service/test/integration2_test.go || die
}

src_compile() {
	ego build -mod=vendor -ldflags="-X main.Build=${PV}" -o "${S}/dlv" ./cmd/dlv

	einfo "generating shell completion files"
	sysroot_try_run_prefixed "${S}/dlv" completion bash > dlv.bash || die
	sysroot_try_run_prefixed "${S}/dlv" completion zsh > dlv.zsh || die
	sysroot_try_run_prefixed "${S}/dlv" completion fish > dlv.fish || die
}

src_test() {
	ego test -count 1 -p 1 -ldflags="-X main.Build=${PV}" ./...
}

src_install() {
	dobin dlv
	dodoc README.md CHANGELOG.md

	[[ -s dlv.bash ]] && newbashcomp dlv.bash dlv
	[[ -s dlv.zsh ]] && newzshcomp dlv.zsh _dlv
	[[ -s dlv.fish ]] && dofishcomp dlv.fish
}

pkg_postinst() {
	elog "Telemetry notice:"
	elog "Starting with version 1.24.0, Delve will begin collecting opt-in telemetry"
	elog "data using the same mechanism used by the Go toolchain."
	elog
	elog "For more information, please see:"
	elog "  * https://github.com/golang/go/issues/68384"
	elog "  * https://go.dev/doc/telemetry#background"
	elog "  * https://github.com/go-delve/delve/issues/3815"
}
