#!/bin/bash

target_rev="$(git rev-parse $1)"
current_rev="$(git rev-parse HEAD)"

current_branch="$(git rev-parse --abbrev-ref HEAD)"
trap "git checkout "$current_branch"" EXIT

hyperfine \
  --style full \
  --warmup 3 \
  --export-json /tmp/bench.json \
  --parameter-list rev "${target_rev},${current_rev}"  \
  --prepare "git checkout {rev} && cargo build --release" -n '{rev}' 'luajit ./scripts/benchmark.lua'

old_value=$(cat /tmp/bench.json | jq '.results[0].mean')
new_value=$(cat /tmp/bench.json | jq '.results[1].mean')
percentage_difference=$(echo "scale=2; (($new_value - $old_value) / $old_value) * 100" | bc)

echo ""
echo "-------------------------------------"
echo "The percentage difference is $percentage_difference%"
echo "-------------------------------------"
echo ""
