#!/bin/sh
# Run with the pinned Go SDK, with networking disabled. Both arguments are required.
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 blackbox-exporter-v0.29.0.tar.gz --strip-components=1 -C "$output_dir/src"
tar -xzf blackbox-exporter-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
go mod download
go mod verify
go build -p 4 -mod=readonly -buildvcs=false -trimpath \
  -ldflags '-s -w -X github.com/prometheus/common/version.Version=0.29.0 -X github.com/prometheus/common/version.Revision=0e64fec9b041487cc3b62245a8ed5afb0d22819c -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-10-07T09:40:56Z' \
  -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"
