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

ns3_dir=${1:?Pass the ns-3 checkout directory}
ns3_dir=$(realpath "$ns3_dir")
result_dir=${2:-results}
mkdir -p "$result_dir"
result_dir=$(realpath "$result_dir")

for loss in 0 10 20; do
  for mode in adr fixed; do
    case_dir="$result_dir/${mode}-loss${loss}"
    mkdir -p "$case_dir"
    if [[ "$mode" == adr ]]; then enabled=true; else enabled=false; fi
    echo "Running ${mode} with maxRandomLoss=${loss} dB, RngSeed=7, RngRun=1"
    (
      cd "$case_dir"
      "$ns3_dir/ns3" run "adr-example --RngSeed=7 --RngRun=1 --AdrEnabled=$enabled --initializeSF=false --nDevices=16 --PeriodsToSimulate=30 --sideLength=4000 --gatewayDistance=5000 --maxRandomLoss=$loss" > stdout.log 2>&1
    )
    cp "$ns3_dir/nodeData.txt" "$ns3_dir/globalPerformance.txt" "$case_dir/"
    printf '%s: %s\n' "$case_dir" "$(tail -1 "$case_dir/stdout.log")"
  done
done
