# Template file for 'kubernetes-helm'
pkgname=kubernetes-helm
version=3.3.1
revision=1
wrksrc="helm-${version}"
hostmakedepends="go make git mercurial tar"
short_desc="Kubernetes Package Manager"
maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
license="Apache-2.0"
homepage="https://helm.sh/"
distfiles="https://github.com/helm/helm/archive/v${version}.tar.gz"
checksum=7a0ca710683d264bfa79eeed61f1dfd90db2cc755cbc1d1e9ccbb43ec55917b6
conflicts="helm"
nopie=true

_convert_arch() {
	case "$1" in
		aarch64*) echo arm64;;
		armv6*) echo arm;;
		armv7*) echo arm;;
		i686*) echo 386;;
		x86_64*) echo amd64;;
		ppc64le*) echo ppc64le;;
	esac
}

export _go_target_arch=$(_convert_arch $XBPS_TARGET_MACHINE)
export _go_host_arch=$(_convert_arch $XBPS_MACHINE)

do_extract() {
	mkdir -p golib/src/k8s.io/helm
	tar -xvzf ${XBPS_SRCDISTDIR}/${pkgname}-${version}/v${version}.tar.gz \
		-C golib/src/k8s.io/helm \
		--strip-components 1 \
		helm-${version}
}

pre_build() {
	export GOPATH="$(pwd)/golib"

	## The current version of glide in the repository has
	## a bug that prevents building, so pull the current
	## version from git.
	CC=/bin/gcc go get github.com/Masterminds/glide
	CC=/bin/gcc go get github.com/mitchellh/gox
	CC=/bin/gcc go install github.com/Masterminds/glide
	CC=/bin/gcc go install github.com/mitchellh/gox
	PATH="$PATH:$(pwd)/golib/bin/"
	export PATH
}

do_build() {
	cd golib/src/k8s.io/helm
	make build-cross TARGETS="linux/${_go_target_arch} linux/${_go_host_arch}" APP="..." LDFLAGS="-X k8s.io/helm/pkg/version.Version=v${version} -X k8s.io/helm/pkg/version.BuildMetadata="

	_dist/linux-${_go_host_arch}/helm completion bash > completion.bash
	_dist/linux-${_go_host_arch}/helm completion zsh > completion.zsh
}

do_install() {
	cd golib/src/k8s.io/helm

	# Copy helm binary
	vbin _dist/linux-${_go_target_arch}/helm

	# Copy completion files
	vinstall completion.bash 644 usr/share/bash-completion/completions helm
	vinstall completion.zsh 644 usr/share/$pkgname
}
