52 lines
1.4 KiB
Bash
Executable File
52 lines
1.4 KiB
Bash
Executable File
#!/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" \
|
|
--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 "============================================"
|