#!/bin/sh
# Run in the pinned SDK with networking disabled. Supply a new output directory.
set -eu
source_dir=$(cd "$1" && pwd)
output_dir=$2
mkdir "$output_dir"
output_dir=$(cd "$output_dir" && pwd)
cd "$source_dir"
sha256sum -c SHA256SUMS
mkdir "$output_dir/src" "$output_dir/modcache" "$output_dir/buildcache"
tar -xzf kube-state-metrics-v2.20.0.tar.gz --strip-components=1 -C "$output_dir/src"
tar -xzf kube-state-metrics-module-inputs.tar.gz -C "$output_dir/modcache"
cp records/go.mod records/go.sum "$output_dir/src/"
export GOTOOLCHAIN=local CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GOMAXPROCS=4
export GOPROXY=off GOSUMDB=off GOMODCACHE="$output_dir/modcache" GOCACHE="$output_dir/buildcache"
cd "$output_dir/src"
test "$(go env GOVERSION)" = go1.27.2
xargs go mod download < "$source_dir/records/build-module-downloads.txt"
go mod verify
client_go_version=$(go list -m -f '{{.Version}}' k8s.io/client-go)
go build -p 4 -mod=readonly -buildvcs=false -trimpath \
  -ldflags "-s -w -X github.com/prometheus/common/version.Version=v2.20.0 -X github.com/prometheus/common/version.Revision=4ffeda2ef866b0fef372849825a803296483b336 -X github.com/prometheus/common/version.Branch=hardened -X github.com/prometheus/common/version.BuildUser=thepeoples.io -X github.com/prometheus/common/version.BuildDate=2026-08-18T08:46:24Z -X k8s.io/kube-state-metrics/v2/pkg/app.ClientGoVersion=${client_go_version}" \
  -o "$output_dir/exporter" .
go version -m "$output_dir/exporter" > "$output_dir/go-version-m.txt"
go list -deps -json . > "$output_dir/packages.json"
sha256sum "$output_dir/exporter"
