# Get some variables provided by autosubmit.
# TODO: What do we do to ensure that these variables are defined in the proj file?
WORKDIR=%HPCROOTDIR%
ICON_VERSION=%icon.version%

# If the workdir directory does not exist create it
if [ ! -d ${WORKDIR} ]; then
  mkdir -p ${WORKDIR}
fi

# Go to the working directory
cd ${WORKDIR}

. ${WORKDIR}/proj/platforms/common/spack_utils.sh
load_spack "%spack.init%" "%spack.root%" "%spack.url%" "%spack.branch%" "%spack.compiler%" "%spack.disable_local_config%" "%spack.user_cache_path%"

SPACK_BUILD_ICON="%icon.spack_cmd%"
if [ ! -z "$SPACK_BUILD_ICON" ]; then
  echo "Installing ICON with spack!"
  echo "cmd=$SPACK_BUILD_ICON"
  if [[ $(spack repo list | grep "${WORKDIR}/proj/spack_repo") ]]; then
    echo "icon spack repo was already added to repo list"
  else
    spack repo add ${WORKDIR}/proj/spack_repo
  fi
  spack install $SPACK_BUILD_ICON
  spack load $SPACK_BUILD_ICON
else
  echo "%icon.spack_cmd% is not defined. If you want to compile icon with spack, please provide a spack compile instruction string in your proj.yaml"
fi

# Need to get ECCODES DWD definitions:
eccodes_version=$(spack find eccodes | grep eccodes@ | cut -d "@" -f 2)

definitions_tar_file=eccodes_definitions.edzw-${eccodes_version}-1.tar.bz2
if [ ! -f ${definitions_tar_file} ]; then
  defs_url=https://opendata.dwd.de/weather/lib/grib/${definitions_tar_file}
  wget ${defs_url}

  # Decompress definitions file
  tar -xf ${definitions_tar_file}
  # Create a file containing the environment variable that needs to be set in order to use DWD's definitions:
  echo "export ECCODES_DEFINITION_PATH=${WORKDIR}/definitions.edzw-${eccodes_version}-1" >eccodes_defs.env
fi
