refactor(generator): реестры исключений (данные) вместо хардкодов svc.ID==N / ServiceID==N
This commit is contained in:
Executable
+29
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# check_hardcoded_service_ids.sh — запрет сервис-специфичных хардкодов по числовому ID.
|
||||
#
|
||||
# Ищет сравнения вида svc.ID == N / ServiceID == N / spec.ServiceID == N (N > 0)
|
||||
# в Go-коде TOOLS/. Исключения должны жить ТОЛЬКО в именованных реестрах (данные):
|
||||
# - TOOLS/yaml-generator/main.go (serviceSpecificModifiers)
|
||||
# - TOOLS/docs-generator/internal/writers/writers.go (serviceSpecificDocExamples)
|
||||
#
|
||||
# Выход: 0 — хардкодов нет; 1 — найдены.
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
ROOT_DIR="${ROOT_DIR:-$(cd "${SCRIPT_DIR}/../.." && pwd)}"
|
||||
|
||||
matches="$(grep -rnE '\.(ServiceID|ID)[[:space:]]*==[[:space:]]*[1-9][0-9]*' "$ROOT_DIR/TOOLS" --include='*.go' || true)"
|
||||
|
||||
if [[ -n "$matches" ]]; then
|
||||
echo "HARDCODED SERVICE ID FOUND (service-specific logic must live in a registry):" >&2
|
||||
echo "$matches" >&2
|
||||
echo "" >&2
|
||||
echo "Вынеси исключение в один из реестров:" >&2
|
||||
echo " - TOOLS/yaml-generator/main.go (serviceSpecificModifiers)" >&2
|
||||
echo " - TOOLS/docs-generator/internal/writers/writers.go (serviceSpecificDocExamples)" >&2
|
||||
echo "См. TOOLS/ARCHITECTURE.md, раздел «Реестр исключений»." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "OK: no hardcoded service IDs in TOOLS/."
|
||||
Reference in New Issue
Block a user