#!/bin/bash # Cross-platform helper to set up .venv, install dependencies, and run alpha.py set -e # Get the directory of the script SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" VENV_DIR=".venv" # List of essential Python packages REQUIRED_PACKAGES=("pywebview") # Function to check Linux GTK dependencies check_gtk_linux() { if [[ "$OSTYPE" == "linux-gnu"* ]]; then # Try importing gi in python python3 - </dev/null try: import gi except ImportError: import sys sys.exit(1) EOF if [[ $? -ne 0 ]]; then echo -e "\e[31mError: GTK dependencies missing on Linux.\e[0m" echo "Install them with:" echo " sudo apt install python3-gi python3-gi-cairo gir1.2-webkit2-4.0" exit 1 fi fi } # Function to create virtual environment and install dependencies setup_venv() { echo -e "\e[32mCreating virtual environment...\e[0m" python3 -m venv "$VENV_DIR" if [ ! -f "$VENV_DIR/bin/activate" ]; then echo -e "\e[31mError: Failed to create virtual environment.\e[0m" exit 1 fi echo -e "\e[32mActivating virtual environment...\e[0m" source "$VENV_DIR/bin/activate" # Upgrade pip first pip install --upgrade pip # Install pywebview and other dependencies for pkg in "${REQUIRED_PACKAGES[@]}"; do pip install "$pkg" done # Install packages from requirements.txt if it exists if [ -f "requirements.txt" ]; then echo -e "\e[32mInstalling dependencies from requirements.txt...\e[0m" pip install -r requirements.txt else echo -e "\e[33mNo requirements.txt found, skipping additional dependencies.\e[0m" fi echo -e "\e[32mVirtual environment ready.\e[0m" } # 1️⃣ Check GTK dependencies on Linux check_gtk_linux # 2️⃣ Activate existing venv or create one if [ -f "$VENV_DIR/bin/activate" ]; then echo -e "\e[32mActivating existing virtual environment...\e[0m" source "$VENV_DIR/bin/activate" else setup_venv fi # 3️⃣ Run the application echo -e "\e[32mRunning alpha.py...\e[0m" python alpha.py