| 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.