#!/usr/bin/env bash set -euo pipefail echo "============================================" echo " PickupAuto Build Script (HTTP mode)" echo "============================================" echo # Check dependencies command -v python3 >/dev/null 2>&1 || { echo "[ERROR] Python 3.10+ required"; exit 1; } command -v node >/dev/null 2>&1 || { echo "[ERROR] Node.js 18+ required"; exit 1; } command -v npm >/dev/null 2>&1 || { echo "[ERROR] npm required"; exit 1; } # Check uv if ! command -v uv &>/dev/null; then echo "[INFO] Installing uv..." pip install uv fi echo "[1/4] Installing Python dependencies..." uv sync echo "[2/4] Installing token bridge dependencies..." cd token_bridge npm install cd .. echo "[3/4] Cleaning old build..." rm -rf dist build echo "[4/4] Building with PyInstaller..." uv run pyinstaller \ --onefile \ --windowed \ --name "PickupAuto" \ --add-data "config.json:." \ --add-data "pickup.ico:." \ --add-data "token_bridge:token_bridge" \ --add-data "免责声明.txt:." \ --hidden-import=openpyxl \ --hidden-import=requests \ main.py echo echo "============================================" echo " Build complete!" echo " Output: dist/PickupAuto" echo echo " Requirements for end users:" echo " - Node.js 18+ (for security token computation)" echo " - Access to internal network (10.4.188.1)" echo "============================================"