#!/usr/bin/env sh year=$1 day=$2 lang=$3 input=$4 warmups=${5:-0} script=$(readlink -f "$0") script_path=$(dirname "$script") aoc_path=$script_path/$1/$2 data_path="$aoc_path/data/$4.txt" # Check it is correct $script_path/check $1 $2 $3 $4 >/dev/null [ ! $? ] && echo "Incorrect solution" && exit 1 if [ $lang = "python" ]; then exec="python $aoc_path/python/main.py" elif [ $lang = "rust" ]; then # Compile first cargo build --release --target-dir /tmp/aoc_rust --manifest-path $aoc_path/rust/Cargo.toml exec="/tmp/aoc_rust/release/aoc_$year-$day" else echo "Unknown lang: $lang" exit 1 fi hyperfine --shell=none --warmup=$warmups --input=$data_path "$exec"