#!/usr/bin/env bash
set -euo pipefail
# Linux/amd64 only. Downloads official fixed releases into this directory, not globally.
ROOT=$(pwd)/.tools
mkdir -p "$ROOT/bin"
curl -fL --max-time 120 -o "$ROOT/k6.tar.gz" https://github.com/grafana/k6/releases/download/v2.3.0/k6-v2.3.0-linux-amd64.tar.gz
echo "39c3117b6af817592dcd0ce4242105c0a7af10948c2a425306f0be8f7a8a8ab1  $ROOT/k6.tar.gz" | sha256sum -c -
tar -xzf "$ROOT/k6.tar.gz" -C "$ROOT"
cp "$ROOT/k6-v2.3.0-linux-amd64/k6" "$ROOT/bin/k6"
GOBIN="$ROOT/bin" GOPROXY=https://proxy.golang.org GOSUMDB=sum.golang.org go install github.com/bojand/ghz/cmd/ghz@v0.121.0
curl -fL --max-time 120 -o "$ROOT/wrk.tar.gz" https://github.com/wg/wrk/archive/refs/tags/4.2.0.tar.gz
# Observed digest of the official tag archive during this experiment, not a vendor signature.
echo "e255f696bff6e329f5d19091da6b06164b8d59d62cb9e673625bdcd27fe7bdad  $ROOT/wrk.tar.gz" | sha256sum -c -
tar -xzf "$ROOT/wrk.tar.gz" -C "$ROOT"
make -C "$ROOT/wrk-4.2.0" -j2 VER=4.2.0
cp "$ROOT/wrk-4.2.0/wrk" "$ROOT/bin/wrk"
"$ROOT/bin/k6" version
go version -m "$ROOT/bin/ghz"
printf 'Tool directory: %s\n' "$ROOT/bin"
