Spaces:
Sleeping
Sleeping
| set -euo pipefail | |
| ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" | |
| BACKEND_DIR="$ROOT_DIR/backend" | |
| FRONTEND_DIR="$ROOT_DIR/frontend" | |
| echo "[PDC] Starting full application" | |
| if [ ! -d "$BACKEND_DIR" ] || [ ! -d "$FRONTEND_DIR" ]; then | |
| echo "[PDC] ERROR: backend or frontend directory missing" | |
| exit 1 | |
| fi | |
| if [ ! -d "$BACKEND_DIR/.venv" ]; then | |
| echo "[PDC] Creating backend virtual environment" | |
| python3 -m venv "$BACKEND_DIR/.venv" | |
| fi | |
| echo "[PDC] Installing backend dependencies" | |
| "$BACKEND_DIR/.venv/bin/pip" install -q -r "$BACKEND_DIR/requirements.txt" | |
| echo "[PDC] Running backend test suite" | |
| "$BACKEND_DIR/.venv/bin/python" -m pytest -q "$BACKEND_DIR/tests" | |
| echo "[PDC] Installing frontend dependencies" | |
| cd "$FRONTEND_DIR" | |
| npm install | |
| cleanup() { | |
| echo "[PDC] Stopping services" | |
| if [ -n "${BACKEND_PID:-}" ] && kill -0 "$BACKEND_PID" 2>/dev/null; then | |
| kill "$BACKEND_PID" || true | |
| fi | |
| if [ -n "${FRONTEND_PID:-}" ] && kill -0 "$FRONTEND_PID" 2>/dev/null; then | |
| kill "$FRONTEND_PID" || true | |
| fi | |
| } | |
| trap cleanup EXIT INT TERM | |
| echo "[PDC] Launching backend on http://localhost:8000" | |
| cd "$BACKEND_DIR" | |
| "$BACKEND_DIR/.venv/bin/uvicorn" app.main:app --host 0.0.0.0 --port 8000 --reload & | |
| BACKEND_PID=$! | |
| echo "[PDC] Launching frontend on http://localhost:3000" | |
| cd "$FRONTEND_DIR" | |
| npm run dev -- --port 3000 & | |
| FRONTEND_PID=$! | |
| echo "[PDC] Application is running" | |
| echo "[PDC] Frontend: http://localhost:3000" | |
| echo "[PDC] Backend: http://localhost:8000" | |
| wait "$BACKEND_PID" "$FRONTEND_PID" | |