#!/usr/bin/env sh
# NOTE: This script should be sourced! The shebang is only here to help syntax highlighters.

DEVENV="${1:-./devenv}"
PYTHON="${PYTHON:-3.8}"
_CONDA="${DEVENV}/bin/conda"

if ! [ -f "$DEVENV/conda-meta/history" ]; then
    if [ "$(uname)" = Darwin ]; then
        if [ ! -f miniconda3.sh ]; then
            curl "https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh" -o miniconda3.sh
        fi
        bash miniconda3.sh -bfp "$DEVENV"
        rm -f miniconda3.sh
        "${_CONDA}" install -yq -p "$DEVENV" python="$PYTHON" --file tests/requirements.txt -c defaults
    elif [ "$(uname)" = Linux ]; then
        if [ ! -f miniconda3.sh ]; then
            curl "https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh" -o miniconda3.sh
        fi
        bash miniconda3.sh -bfp "$DEVENV"
        rm -f miniconda3.sh
        "${_CONDA}" install -yq -p "$DEVENV" python="$PYTHON" --file tests/requirements.txt -c defaults
        "${_CONDA}" install -yq -p "$DEVENV" patchelf  # for conda-build
    else
        if [ ! -f "miniconda3.exe" ]; then
            powershell.exe -Command "(new-object System.Net.WebClient).DownloadFile('https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe','miniconda3.exe')"
        fi
        cmd.exe /c "start /wait \"\" miniconda3.exe /InstallationType=JustMe /RegisterPython=0 /AddToPath=0 /S /D=%CD%\$(cygpath -w $DEVENV)"
        _CONDA="$DEVENV/Scripts/conda"
        "$DEVENV/Scripts/conda" install -yq -p "$DEVENV" python="$PYTHON" --file tests/requirements.txt -c defaults
        rm -f miniconda3.exe
    fi
fi


if ! [ -f "$DEVENV/.dev-start-ed" ]; then
  "${_CONDA}" install -yq -p "$DEVENV" python="$PYTHON" --file tests/requirements.txt -c defaults
  touch "$DEVENV/.dev-start-ed"
fi


case "$(uname)" in
    Darwin|Linux)  eval "$($DEVENV/bin/python -m conda init --dev bash)" ;;
               *)  eval "$($DEVENV/python -m conda init --dev bash)" ;;
esac
