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

EAPI=8

inherit go-module shell-completion sysroot

# update on every bump
GIT_COMMIT=e345ca679f612b4990175d6e33839ba864bb02d2

DESCRIPTION="the official gitlab command line interface"
HOMEPAGE="https://gitlab.com/gitlab-org/cli"
SRC_URI="https://gitlab.com/gitlab-org/cli/-/archive/v${PV}/${PN}-v${PV}.tar.bz2 -> ${P}.tar.bz2"
SRC_URI+=" https://github.com/gentoo-golang-dist/${PN}/releases/download/v${PV}/${P}-vendor.tar.xz"
S="${WORKDIR}/cli-v${PV}-${GIT_COMMIT}"

LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"

# tests communicate with gitlab.com and require a personal access token
RESTRICT="test"

BDEPEND=">=dev-lang/go-1.26.3"

QA_PRESTRIPPED=usr/bin/glab

src_unpack() {
	mkdir -p "${S}" || die
	ln -s "../${P}/vendor" "${S}/vendor" || die
	go-module_src_unpack
	sed -e 's/check_update: true/check_update: false/' -i "${S}/internal/config/config.yaml.lock" || die
	chmod 600 "${S}/internal/config/config.yaml.lock" || die
}

src_compile() {
	emake \
		GLAB_VERSION=v${PV} \
		gen-config
	emake \
		BUILD_COMMIT_SHA=${GIT_COMMIT::8} \
		GLAB_VERSION=v${PV} \
		build manpage

	einfo "generating shell completion files"
	sysroot_try_run_prefixed bin/glab completion bash > "${T}"/glab.bash || die
	sysroot_try_run_prefixed bin/glab completion zsh > "${T}"/glab.zsh || die
	sysroot_try_run_prefixed bin/glab completion fish > "${T}"/glab.fish || die
}

src_install() {
	dobin bin/glab
	dodoc README.md
	doman share/man/man1/*

	[[ -s "${T}"/glab.bash ]] && newbashcomp "${T}"/glab.bash glab
	[[ -s "${T}"/glab.zsh ]] && newzshcomp "${T}"/glab.zsh _glab
	[[ -s "${T}"/glab.fish ]] && dofishcomp "${T}"/glab.fish
}
