#!/usr/bin/env bash

# find the source directory for this script even if it's been symlinked [issue #185]
# from https://stackoverflow.com/questions/59895/
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do
    DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
    SOURCE="$(readlink "$SOURCE")"
    [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
done
DIR=$(dirname "$SOURCE")
DAFNY_ROOT=$( cd -P "$DIR" && pwd )/..

MY_OS=$(uname -s)
if [ "${MY_OS:0:5}" == "MINGW" ] || [ "${MY_OS:0:6}" == "CYGWIN" ]; then
    DAFNY_EXE_NAME="Dafny.exe"
else
    DAFNY_EXE_NAME="Dafny.dll"
fi
DAFNY="$DAFNY_ROOT/Binaries/$DAFNY_EXE_NAME"
if [[ ! -e "$DAFNY" ]]; then
    echo "Error: $DAFNY_EXE_NAME not found at $DAFNY."
    exit 1
fi

if [ "${MY_OS:0:5}" == "MINGW" ] || [ "${MY_OS:0:6}" == "CYGWIN" ]; then
    "$DAFNY" "$@"
else
    DOTNET=$(type -p dotnet)
    if [[ ! -x "$DOTNET" ]]; then
        echo "Error: Dafny requires .NET Core to run on non-Windows systems."
        exit 1
    fi
    "$DOTNET" "$DAFNY" "$@"
fi
