35 lines
1001 B
Bash
Executable File
35 lines
1001 B
Bash
Executable File
#!/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
|