HoDA_Radio/tools/build.command
2025-09-21 20:13:54 +02:00

59 lines
1.6 KiB
Bash

#!/bin/bash
set -e
# === PATH SETUP ===
PARENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
CONFIG_FILE="$PARENT_DIR/config.json"
ENV_FILE="$PARENT_DIR/.env"
# --- Check .env file ---
if [[ ! -f "$ENV_FILE" ]]; then
echo "[ERROR] .env file not found. Please copy .env.example to .env and configure it."
exit 1
fi
# --- Check jq availability ---
if ! command -v jq &>/dev/null; then
echo "[ERROR] 'jq' is required. Install it with: brew install jq"
exit 1
fi
# --- Extract values from config.json ---
ICON_PATH=$(jq -r '.icon_path' "$CONFIG_FILE")
APP_NAME=$(jq -r '.app_name' "$CONFIG_FILE")
ARCHITECTURE=$(jq -r '.architecture' "$CONFIG_FILE")
# --- Extract PYTHON_PATH from .env ---
SYSTEM_PYTHON=$(grep -E "^PYTHON_PATH=" "$ENV_FILE" | cut -d '=' -f2)
VENV_PATH="$PARENT_DIR/MACenv_$ARCHITECTURE"
EXE_NAME="${APP_NAME}-MacOS-${ARCHITECTURE}"
PYTHON_IN_VENV="$VENV_PATH/bin/python"
# --- Verify Python existence ---
if [[ ! -x "$SYSTEM_PYTHON" ]]; then
echo "[ERROR] Python not found at: $SYSTEM_PYTHON"
exit 1
fi
# --- Check if virtual environment exists ---
if [[ ! -f "$VENV_PATH/bin/activate" ]]; then
echo "[INFO] Virtual environment not found. Creating..."
"$SYSTEM_PYTHON" -m venv "$VENV_PATH"
"$PYTHON_IN_VENV" -m pip install --upgrade pip
"$PYTHON_IN_VENV" -m pip install -r "$PARENT_DIR/requirements.txt"
else
echo "[INFO] Virtual environment found."
fi
# --- Run PyInstaller ---
"$PYTHON_IN_VENV" -m PyInstaller \
--distpath "$PARENT_DIR/build" \
--workpath "$PARENT_DIR/build/dist" \
--clean \
"$PARENT_DIR/BUILD.spec"
# --- Clean build cache ---
rm -rf "$PARENT_DIR/build/dist"
echo "[INFO] Build complete: $EXE_NAME"