# Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved.
#
# This source code is licensed under the terms described in the LICENSE file in
# the root directory of this source tree.

cleanup() {
  envname="$1"

  set +x
  echo "Cleaning up..."
  conda deactivate
  conda env remove --name "$envname" -y
}

handle_int() {
  if [ -n "$ENVNAME" ]; then
    cleanup "$ENVNAME"
  fi
  exit 1
}

handle_exit() {
  if [ $? -ne 0 ]; then
    echo -e "\033[1;31mABORTING.\033[0m"
    if [ -n "$ENVNAME" ]; then
      cleanup "$ENVNAME"
    fi
  fi
}

setup_cleanup_handlers() {
  trap handle_int INT
  trap handle_exit EXIT

  if is_command_available conda; then
    __conda_setup="$('conda' 'shell.bash' 'hook' 2>/dev/null)"
    eval "$__conda_setup"
    conda deactivate
  else
    echo "conda is not available"
    exit 1
  fi
}

# check if a command is present
is_command_available() {
  command -v "$1" &>/dev/null
}
