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