maintainer="Hoang Nguyen <folliekazetani@protonmail.com>"
pkgname=knative-client
pkgver=1.18.0
pkgrel=0
pkgdesc="CLI client for Knative the serverless container platform in Kubernetes"
url="https://knative.dev/"
arch="all"
license="Apache-2.0"
makedepends="go"
checkdepends="bash"
subpackages="
	$pkgname-bash-completion
	$pkgname-fish-completion
	$pkgname-zsh-completion
	"
source="https://github.com/knative/client/archive/refs/tags/knative-v$pkgver.tar.gz"
builddir="$srcdir/client-knative-v$pkgver"
options="net" # download Go modules

export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"

build() {
	local _goldflags="
	-X knative.dev/client/pkg/commands/version.Version=v$pkgver
	-X knative.dev/client/pkg/commands/version.GitRevision=AlpineLinux
	-X 'knative.dev/client/pkg/commands/version.BuildDate=$(date -u "+%Y-%m-%d %H:%M:%S" ${SOURCE_DATE_EPOCH:+-d @$SOURCE_DATE_EPOCH})'
	"

	go build -v -ldflags "$_goldflags" ./cmd/kn/

	for shell in bash fish zsh; do
		./kn completion $shell > kn.$shell
	done
}

check() {
	# knative.dev/client/pkg/kn/plugin/verify_test.go needs to access itself during test
	GOFLAGS="${GOFLAGS/-trimpath/}" go test ./...
}

package() {
	install -Dm755 kn -t "$pkgdir"/usr/bin/

	install -Dm644 kn.bash \
		"$pkgdir"/usr/share/bash-completion/completions/kn
	install -Dm644 kn.fish \
		"$pkgdir"/usr/share/fish/vendor_completions.d/kn.fish
	install -Dm644 kn.zsh \
		"$pkgdir"/usr/share/zsh/site-functions/_kn
}

sha512sums="
f8a6cfc5c7eb96116f3e15c195955d6c1672ba4bc68719d12a4aaeeae2e835275e714a200de855c54cf0f7568f82c51a697e25cd3812ca1cbca920feb3fb1af7  knative-v1.18.0.tar.gz
"
