#!/usr/bin/env bash set -euo pipefail cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." if [[ ! -f evening_detective_server/.env ]]; then echo 'Сначала скопируйте evening_detective_server/.env.example в evening_detective_server/.env.' >&2 exit 1 fi if [[ ! -d evening_detective_frontend/node_modules ]]; then echo 'Сначала выполните npm --prefix evening_detective_frontend ci.' >&2 exit 1 fi docker compose -f evening_detective_server/docker-compose-db.yml up -d --wait # Отдельные группы позволяют остановить и go run/npm, и их дочерние процессы. set -m pids=() cleanup() { trap - EXIT INT TERM for pid in "${pids[@]}"; do kill -TERM -- "-$pid" 2>/dev/null || true done wait || true } trap cleanup EXIT trap 'exit 130' INT trap 'exit 143' TERM make -C evening_detective_server run & pids+=("$!") (cd evening_detective_frontend && exec npm run dev) & pids+=("$!") echo 'Разработка: http://localhost:5173; API: http://localhost:8090. Остановка: Ctrl+C.' wait -n "${pids[@]}"