24 lines
1.6 KiB
Bash
24 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
||
# Тестовый хаб для разработки фронта и e2e: свой SDLC_HUB_HOME (по умолчанию web/.e2e-hub, очищается), порт 8791,
|
||
# зеркало — фикстура hub-basic. Живой хаб (:8790, ~/.local/share/sdlc-hub) не трогается.
|
||
set -euo pipefail
|
||
WEB=$(cd "$(dirname "$0")/.." && pwd)
|
||
ROOT=$(cd "$WEB/.." && pwd)
|
||
export SDLC_HUB_HOME="${SDLC_HUB_HOME:-$WEB/.e2e-hub}"
|
||
PORT="${PORT:-8791}" # держать равным HUB_PORT в playwright.config.ts
|
||
case "$SDLC_HUB_HOME" in "$HOME/.local/share/sdlc-hub"*) echo "отказ: это каталог живого хаба" >&2; exit 2;; esac
|
||
# чистим только каталог внутри web/.e2e-hub (T15.5): чужой путь из переменной окружения не удаляем
|
||
case "$SDLC_HUB_HOME" in
|
||
*..*) echo "отказ: SDLC_HUB_HOME=$SDLC_HUB_HOME содержит «..», очистка не выполняется" >&2; exit 2;; # F-1
|
||
"$WEB/.e2e-hub"|"$WEB/.e2e-hub/"*) ;;
|
||
*) echo "отказ: SDLC_HUB_HOME=$SDLC_HUB_HOME вне $WEB/.e2e-hub, очистка не выполняется" >&2; exit 2;;
|
||
esac
|
||
if lsof -nP -iTCP:"$PORT" -sTCP:LISTEN >/dev/null 2>&1; then
|
||
echo "отказ: порт $PORT занят — остановите прежний тестовый хаб (lsof -iTCP:$PORT -sTCP:LISTEN)" >&2; exit 3
|
||
fi
|
||
rm -rf "$SDLC_HUB_HOME"
|
||
cd "$ROOT"
|
||
uv run sdlc-hub init --config tests/fixtures/config.example.json --force >/dev/null
|
||
uv run python web/scripts/seed-hub.py web/src/modules/jira/board/__fixtures__/hub-basic.board.json
|
||
exec uv run sdlc-hub serve --host 127.0.0.1 --port "$PORT"
|