# static settings when using spack
function spack_env() {
export SPACK_SETUP_ENV=$SPACK_ROOT/share/spack/setup-env.sh
}

function _install_spack() {
spack_env

if [ ! -f ${SPACK_ROOT} ]; then
  git clone ${SPACK_URL} -b ${SPACK_BRANCH} ${SPACK_ROOT}
fi

. ${SPACK_SETUP_ENV}

if [[ $(spack compiler info ${SPACK_COMPILER}) ]]; then
  echo "Found Compiler $(spack compiler info ${SPACK_COMPILER})"
else
  echo "could not find compiler, will now try to install it... this may take a while"
  spack install ${SPACK_COMPILER}
  spack compiler add $(spack location --install-dir $SPACK_COMPILER)
fi
}

function load_spack() {
export SPACK_ROOT=$1
export SPACK_URL=$2
export SPACK_BRANCH=$3
export SPACK_COMPILER=$4
export SPACK_DISABLE_LOCAL_CONFIG=$5
export SPACK_USER_CACHE_PATH=$6
if [ ! -z "$SPACK_USER_CACHE_PATH" ]; then
  echo "setting SPACK_USER_CACHE_PATH=$SPACK_USER_CACHE_PATH"
fi
spack_env
if [ ! -f ${SPACK_ROOT} ]; then _install_spack; fi
. ${SPACK_SETUP_ENV}
}