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

EAPI=7
GIT_COMMIT=370c289
EGO_PN="github.com/docker/cli"
inherit bash-completion-r1  golang-vcs-snapshot

DESCRIPTION="the command line binary for docker"
HOMEPAGE="https://www.docker.com/"
MY_PV=${PV/_/-}
SRC_URI="https://github.com/docker/cli/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"

LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="*"
IUSE="hardened"

RDEPEND="!<app-emulation/docker-20.10.1"
BDEPEND="dev-go/go-md2man"

RESTRICT="installsources strip"

S="${WORKDIR}/${P}/src/${EGO_PN}"


src_prepare() {
	default
	sed -i 's@dockerd\?\.exe@@g' contrib/completion/bash/docker || die
	sed -i 's@md2man@go-md2man@' man/md2man-all.sh || die
}

src_compile() {
	export DISABLE_WARN_OUTSIDE_CONTAINER=1
	export GOPATH="${WORKDIR}/${P}"
	# setup CFLAGS and LDFLAGS for separate build target
	# see https://github.com/tianon/docker-overlay/pull/10
	export CGO_CFLAGS="-I${ROOT}/usr/include"
	export CGO_LDFLAGS="-L${ROOT}/usr/$(get_libdir)"
	# lakitu: export a function named 'go' that invokes the go cross-compiler.
	# The docker-cli Makefile will invoke this function instead of doing a PATH
	# lookup for the go binary.
	GO="$(tc-getGO)"
	export GO
	go() {
		echo "${GO} $@" 1>&2
		"${GO}" "$@"
	}
	export -f go
		# lakitu: use PV for version, since the VERSION file doesn't seem to be
		# accurate
		emake \
		LDFLAGS="$(usex hardened '-extldflags -fno-PIC' '')" \
		VERSION="${PV}" \
		GITCOMMIT="${GIT_COMMIT}" \
		dynbinary
	unset -f go

	# lakitu: don't build man pages as cross-compiling man pages doesn't
	# work on ARM.
	# TODO(mikewu@): uncommment the following lines once b/178526852 is fixed.
	# build man pages
	# see "cli/scripts/docs/generate-man.sh" (which also does "go get" for go-md2man)
	#go build -o "${T}"/gen-manpages ./man ||
		#die 'build gen-manpages failed'
	#"${T}"/gen-manpages --root "$(pwd)" --target "$(pwd)"/man/man1 ||
		#die 'gen-manpages failed'
	#./man/md2man-all.sh -q ||
		#die 'md2man-all.sh failed'
}

src_install() {
	dobin build/docker
	# lakitu: don't install man pages as cross-compiling man pages doesn't
	# work on ARM.
	# TODO(mikewu@): uncomment the following line once b/178526852 is fixed.
	#doman man/man*/*
	dobashcomp contrib/completion/bash/*
	bashcomp_alias docker dockerd
	insinto /usr/share/fish/vendor_completions.d/
	doins contrib/completion/fish/docker.fish
	insinto /usr/share/zsh/site-functions
	doins contrib/completion/zsh/_*
}
