#!/bin/bash
if [[ (("$CLUSTER" != "teach") && ("$CLUSTER" != "niagara"))  ]]
then
    echo "Error: this activation script is meant for the SciNet Teach and Niagara clusters."
    return
fi

environment_name="py2cpp"

# Make sure we don't activate environment twice
if [[ -n "${XENV}" ]]
then
    echo "Environment $environment_name is already active."
    return
else
    export XENV=1
fi

# Deactivation function
function deactivate() {
    export PATH="$_XENV_PATH" CPATH="$_XENV_CPATH" PS1="$_XENV_PS1"
    unset XENV _XENV_PATH _XENV_CPATH _XENV_PS1
    unset -f g++ deactivate
    unalias tmux
}
export -f deactivate

# Load appropriate modules
if [[ "$CLUSTER" = "niagara" ]]
then
    module load NiaEnv/2019b gcc/13.2.0 python/3.11.5 2> /dev/null
fi

if [[ "$CLUSTER" = "teach" ]]
then
    module load TeachEnv/2022a gcc/13.2.0 python/3.11.5 2> /dev/null
fi

# Add local paths
script_directory=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
prefix="$script_directory/local"
function g++() {
    command g++ -std=c++23 "$@"
}
export -f g++

export _XENV_PATH="$PATH" _XENV_CPATH="$CPATH"
export PATH="$prefix/bin:$PATH" CPATH="$prefix/include:$CPATH"

# Change prompt
export _XENV_PS1="$PS1"
PS1="($environment_name) $PS1"
alias tmux="SHELL=$prefix/bin/.bash /usr/bin/tmux"
