#!/usr/bin/env bash # Build the PySide deployment artefacts into bin/deploy via the provided spec. # Usage: bash scripts/build.sh [extra deploy args] set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-${0}}")" && pwd)" PROJECT_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)" VENV_DIR="${PROJECT_ROOT}/.venv" PYTHON_BIN="${VENV_DIR}/bin/python" if [ ! -x "${PYTHON_BIN}" ]; then echo "Virtualenv not found. Run 'bash scripts/bootstrap.sh' first." >&2 exit 1 fi SPEC_FILE="${PROJECT_ROOT}/deploy/pysidedeploy.spec" if [ ! -f "${SPEC_FILE}" ]; then echo "Deploy spec missing at ${SPEC_FILE}" >&2 exit 1 fi CACHE_DIR="${PROJECT_ROOT}/bin/pycache" DEPLOY_DIR="${PROJECT_ROOT}/bin/deploy" mkdir -p "${CACHE_DIR}" "${DEPLOY_DIR}" pushd "${PROJECT_ROOT}" >/dev/null PYTHONPATH="${PROJECT_ROOT}/src${PYTHONPATH:+:${PYTHONPATH}}" \ PYTHONPYCACHEPREFIX="${CACHE_DIR}" \ "${PYTHON_BIN}" -m PySide6.scripts.deploy \ -c "${SPEC_FILE}" \ "src/study_dashboard/main.py" \ "$@" popd >/dev/null