#!/usr/bin/env bash
set -euo pipefail

if [[ $# -lt 2 ]]; then
  echo "Usage: $0 PARAM value1 [value2 ...]" >&2
  exit 1
fi

param="$1"
shift
values=("$@")

env_file="${ENV_FILE:-/root/tipsharks/.env}"
results="${RESULTS:-/tmp/elo_sweep_${param}.txt}"
from_date="${FROM_DATE:-2000-01-01}"
to_date="${TO_DATE:-2100-01-01}"

echo "" >"$results"

for val in "${values[@]}"; do
  perl -pi -e "s/^${param}=.*/${param}=${val}/" "$env_file"
  echo "${param}=${val}" | tee -a "$results"
  docker compose run --rm worker python -m apps.backend.worker.cli recompute --from "$from_date" --to "$to_date" >/tmp/elo_recompute.log
  docker compose run --rm \
    -e DATABASE_URL=postgresql+psycopg://tipsharks:tipsharks@db:5432/tipsharks \
    -e PYTHONPATH=/app \
    worker python scripts/evaluate_accuracy.py | tee -a "$results"
  echo "---" >>"$results"
  echo "" >>"$results"
done
