36 lines
1.1 KiB
Bash
36 lines
1.1 KiB
Bash
#!/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[@]}"
|