48 lines
1.5 KiB
Bash
48 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
CONDA_BIN="${CONDA_BIN:-/home/administrator/miniconda3/bin/conda}"
|
|
TARGET_ENV="${TARGET_ENV:-mintpy}"
|
|
PYTHON_VERSION="${PYTHON_VERSION:-3.11}"
|
|
USE_TUNA_MIRROR="${USE_TUNA_MIRROR:-1}"
|
|
CHANNEL_CONDA_FORGE="${CHANNEL_CONDA_FORGE:-https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge}"
|
|
CHANNEL_MAIN="${CHANNEL_MAIN:-https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main}"
|
|
CHANNEL_R="${CHANNEL_R:-https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r}"
|
|
|
|
if [[ ! -x "$CONDA_BIN" ]]; then
|
|
echo "Missing conda binary: $CONDA_BIN" >&2
|
|
exit 1
|
|
fi
|
|
|
|
channel_args=()
|
|
if [[ "$USE_TUNA_MIRROR" == "1" ]]; then
|
|
channel_args=(
|
|
--override-channels
|
|
-c "$CHANNEL_CONDA_FORGE"
|
|
-c "$CHANNEL_MAIN"
|
|
-c "$CHANNEL_R"
|
|
)
|
|
fi
|
|
|
|
env_exists() {
|
|
"$CONDA_BIN" env list | awk '{print $1}' | grep -Fxq "$TARGET_ENV"
|
|
}
|
|
|
|
echo "MintPy runtime bootstrap"
|
|
echo "Conda: $CONDA_BIN"
|
|
echo "Target env: $TARGET_ENV"
|
|
echo "Python: $PYTHON_VERSION"
|
|
echo "Use mirror: $USE_TUNA_MIRROR"
|
|
|
|
if env_exists; then
|
|
echo "Environment $TARGET_ENV already exists. Installing or updating MintPy."
|
|
"$CONDA_BIN" install -y -n "$TARGET_ENV" "${channel_args[@]}" mintpy
|
|
else
|
|
echo "Creating environment $TARGET_ENV with MintPy."
|
|
"$CONDA_BIN" create -y -n "$TARGET_ENV" "${channel_args[@]}" "python=$PYTHON_VERSION" mintpy
|
|
fi
|
|
|
|
echo "Verifying MintPy import"
|
|
"$CONDA_BIN" run -n "$TARGET_ENV" python -c "import mintpy; print(mintpy.__file__)"
|
|
echo "MintPy runtime bootstrap complete"
|