Daankular's picture
download
raw
6.83 kB
#!/bin/bash
cd "$(dirname "$0")/.."
check_python() {
command -v python3 >/dev/null 2>&1 && python3 -c "import sys; sys.exit(0 if sys.version_info >= (3,11) else 1)" >/dev/null 2>&1
}
install_python() {
echo "[*] Attempting to install Python 3.11+ via system package manager..."
if command -v apt-get >/dev/null 2>&1; then
echo "[*] Detected Debian/Ubuntu based system."
sudo apt-get update
sudo apt-get install -y python3 python3-venv python3-pip
return $?
elif command -v dnf >/dev/null 2>&1; then
echo "[*] Detected Fedora/RHEL based system."
sudo dnf install -y python3 python3-pip
return $?
elif command -v pacman >/dev/null 2>&1; then
echo "[*] Detected Arch based system."
sudo pacman -Sy --noconfirm python python-pip
return $?
else
echo "[-] Unsupported package manager. Please install Python 3.11+ manually."
return 1
fi
}
install_conda() {
echo "[-] 'conda' not found."
echo "[*] Downloading Miniconda3..."
local DL_URL="https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh"
local DL_FILE="miniconda_installer.sh"
if command -v curl >/dev/null 2>&1; then
curl -L -o "$DL_FILE" "$DL_URL"
elif command -v wget >/dev/null 2>&1; then
wget -O "$DL_FILE" "$DL_URL"
else
echo "[-] curl or wget is required to download Miniconda."
return 1
fi
if [ ! -f "$DL_FILE" ]; then
echo "[-] Download failed. Please install Miniconda manually."
return 1
fi
echo "[*] Installing Miniconda silently (this may take a minute)..."
bash "$DL_FILE" -b -p "$HOME/miniconda3"
rm "$DL_FILE"
echo "[*] Auto-accepting Conda Terms of Service and configuring..."
"$HOME/miniconda3/bin/conda" config --set auto_activate_base false
"$HOME/miniconda3/bin/conda" tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main >/dev/null 2>&1
"$HOME/miniconda3/bin/conda" tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r >/dev/null 2>&1
echo "[*] Miniconda installation complete!"
echo "[*] Note: You may need to restart your terminal or run 'source $HOME/miniconda3/bin/activate' to use conda universally."
return 0
}
if ! check_python; then
echo "[!] Python 3.11+ is required but not found (or an older version was detected)."
read -p "[?] Would you like to automatically install it via system package manager? (y/n): " inst_py
if [[ "$inst_py" == "y" || "$inst_py" == "Y" ]]; then
install_python
if ! check_python; then
echo "[-] Automated installation failed or Python 3.11+ is still not recognized."
echo "[*] Please install Python 3.11+ manually."
read -p "Press Enter to exit..."
exit 1
fi
else
echo "[-] Please install Python 3.11+ manually."
read -p "Press Enter to exit..."
exit 1
fi
fi
clear
echo "=========================================================================================="
echo " WAN2GP INSTALLER MENU "
echo "=========================================================================================="
echo "1. Automatic Install (1-Click, Venv, Auto-Detect GPU)"
echo "2. Custom/Manual Install"
echo "3. Exit"
echo "------------------------------------------------------------------------------------------"
read -p "Select an option (1-3): " main_choice
main_choice=$(echo "$main_choice" | tr -d ' "')
if [ "$main_choice" == "1" ]; then
ENV_TYPE="venv"
AUTO_FLAG="--auto"
elif [ "$main_choice" == "2" ]; then
AUTO_FLAG=""
clear
echo "=========================================================================================="
echo " SELECT ENVIRONMENT TYPE "
echo "=========================================================================================="
echo "1. Use 'venv' (Easiest - Comes prepackaged with python)"
echo "2. Use 'uv' (Recommended - Faster but requires installing uv)"
echo "3. Use 'conda'"
echo "4. No Environment (Not Recommended)"
echo "5. Exit"
echo "------------------------------------------------------------------------------------------"
read -p "Select an option (1-5): " choice
choice=$(echo "$choice" | tr -d ' "')
if [ "$choice" == "1" ]; then
ENV_TYPE="venv"
elif [ "$choice" == "2" ]; then
ENV_TYPE="uv"
if ! command -v uv &> /dev/null; then
echo "[-] 'uv' not found."
read -p "[?] Would you like to install 'uv' now? (y/n): " inst_uv
if [[ "$inst_uv" == "y" || "$inst_uv" == "Y" ]]; then
echo "1. Install 'uv' via curl (Recommended)"
echo "2. Install 'uv' via Pip"
read -p "Select method: " uv_choice
if [ "$uv_choice" == "1" ]; then
curl -LsSf https://astral.sh/uv/install.sh | sh
source "$HOME/.cargo/env" 2>/dev/null || true
elif [ "$uv_choice" == "2" ]; then
python3 -m pip install uv
fi
else
echo "[-] 'uv' is required for this option. Exiting."
exit 1
fi
fi
elif [ "$choice" == "3" ]; then
ENV_TYPE="conda"
CONDA_FOUND=0
if command -v conda &> /dev/null; then CONDA_FOUND=1; fi
if [ -f "$HOME/miniconda3/bin/conda" ]; then CONDA_FOUND=1; fi
if [ -f "$HOME/anaconda3/bin/conda" ]; then CONDA_FOUND=1; fi
if [ "$CONDA_FOUND" == "0" ]; then
echo "[!] Conda is not installed."
read -p "[?] Would you like to download and install Miniconda3? (y/n): " inst_conda
if [[ "$inst_conda" == "y" || "$inst_conda" == "Y" ]]; then
install_conda
if [ $? -ne 0 ]; then
echo "[-] Miniconda installation failed or was aborted."
read -p "Press Enter to exit..."
exit 1
fi
else
echo "[-] Cannot proceed without conda. Exiting."
read -p "Press Enter to exit..."
exit 1
fi
fi
elif [ "$choice" == "4" ]; then
ENV_TYPE="none"
elif [ "$choice" == "5" ]; then
exit 0
else
exit 0
fi
elif [ "$main_choice" == "3" ]; then
exit 0
else
exit 0
fi
python3 setup.py install --env "$ENV_TYPE" $AUTO_FLAG
echo "Installation complete. Run ./run.sh to start."
read -p "Press Enter to exit..."

Xet Storage Details

Size:
6.83 kB
·
Xet hash:
d4e15287e5ad1ec1e3c680264e32bd228f842790a28d8cefea84a4bb5d31af29

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.