#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PIDS=() cleanup() { local status=$? trap - EXIT INT TERM if ((${#PIDS[@]})); then kill "${PIDS[@]}" 2>/dev/null || true wait "${PIDS[@]}" 2>/dev/null || true fi exit "$status" } trap cleanup EXIT trap 'exit 130' INT trap 'exit 143' TERM cd "$ROOT_DIR" echo "Starting backend at http://localhost:8000" "$ROOT_DIR/.venv/bin/uvicorn" pirats.main:app --host 0.0.0.0 --port 8000 --reload & PIDS+=("$!") echo "Starting frontend at http://localhost:5173" ( cd "$ROOT_DIR/frontend" exec ./node_modules/.bin/vite ) & PIDS+=("$!") echo "Press Ctrl-C to stop both servers." wait