Files
marf/.localenv-bootstrap-conda
2025-01-09 15:43:11 +01:00

54 lines
1.6 KiB
Bash

#!/usr/bin/env bash
# =======================
# bootstrap a conda venv
# =======================
CONDA_ENV_DIR="${LOCAL_ENV_DIR:-$(pwd)/.conda310}"
mkdir -p "$CONDA_ENV_DIR"
#touch "$HOME/.Xauthority"
MINICONDA_PY310_URL="https://repo.anaconda.com/miniconda/Miniconda3-py310_22.11.1-1-Linux-x86_64.sh"
MINICONDA_PY310_HASH="00938c3534750a0e4069499baf8f4e6dc1c2e471c86a59caa0dd03f4a9269db6"
# Check if conda is available
if ! command -v conda >/dev/null; then
export PATH="$CONDA_ENV_DIR/conda/bin:$PATH"
fi
# Check again if conda is available, install miniconda if not
if ! command -v conda >/dev/null; then
(set -e #x
function verbose {
echo +"$(printf " %q" "$@")"
"$@"
}
if command -v curl >/dev/null; then
verbose curl -sLo "$CONDA_ENV_DIR/miniconda_py310.sh" "$MINICONDA_PY310_URL"
elif command -v wget >/dev/null; then
verbose wget -O "$CONDA_ENV_DIR/miniconda_py310.sh" "$MINICONDA_PY310_URL"
else
echo "ERROR: unable to download miniconda!"
exit 1
fi
verbose test "$(sha256sum "$CONDA_ENV_DIR/miniconda_py310.sh")" = "$MINICONDA_PY310_HASH"
verbose chmod +x "$CONDA_ENV_DIR/miniconda_py310.sh"
verbose "$CONDA_ENV_DIR/miniconda_py310.sh" -b -u -p "$CONDA_ENV_DIR/conda"
verbose rm "$CONDA_ENV_DIR/miniconda_py310.sh"
eval "$(conda shell.bash hook)" # basically `conda init`, without modifying .bashrc
verbose conda install --yes --name base mamba -c conda-forge
) || exit $?
fi
unset CONDA_ENV_DIR
unset MINICONDA_PY310_URL
unset MINICONDA_PY310_HASH
# Enter conda environment
eval "$(conda shell.bash hook)" # basically `conda init`, without modifying .bashrc