#!/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 redis-exporter-v1.93.0.tar.gz --strip-components=1 -C "$output_dir/src"
tar -xzf redis-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 main.BuildVersion=v1.93.0 -X main.BuildCommitSha=589a1cd930d62ba449a5207179ab44252e359c66 -X main.BuildDate=2026-10-01T05:13:49Z' \
  -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"
