45 lines
1.6 KiB
Bash
Executable File
45 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# Varumärkesvakt (beslut D-026): varumärkesnamn får ENDAST finnas i brand.config.json.
|
||
# Körs i CI och kan köras lokalt: ./scripts/brand-guard.sh
|
||
#
|
||
# Vaktar två saker:
|
||
# 1. Det gamla arbetsnamnet får aldrig återinträda någonstans.
|
||
# 2. Det AKTUELLA namnet i brand.config.json får inte hårdkodas i kod
|
||
# (README/docs får nämna det; kod, seed och infrastruktur får det inte).
|
||
set -euo pipefail
|
||
cd "$(dirname "$0")/.."
|
||
|
||
FAIL=0
|
||
|
||
# 1. Historiska/förbjudna namn – uppdatera listan vid namnbyte.
|
||
FORBIDDEN=("matrivo" "matappen")
|
||
for name in "${FORBIDDEN[@]}"; do
|
||
HITS=$(grep -ril "$name" . \
|
||
--exclude-dir=node_modules --exclude-dir=.git --exclude-dir=dist \
|
||
--exclude-dir=.turbo --exclude-dir=.expo --exclude-dir=.data \
|
||
--exclude=brand-guard.sh 2>/dev/null || true)
|
||
if [ -n "$HITS" ]; then
|
||
echo "FEL: förbjudet namn '$name' hittades i:"
|
||
echo "$HITS"
|
||
FAIL=1
|
||
fi
|
||
done
|
||
|
||
# 2. Aktuellt namn utanför brand.config.json i kod/infrastruktur.
|
||
CURRENT=$(node -e "console.log(require('./brand.config.json').name)")
|
||
HITS=$(grep -rl "$CURRENT" apps packages infrastructure \
|
||
--include="*.ts" --include="*.tsx" --include="*.sql" --include="*.yml" \
|
||
--include="*.yaml" --include="Dockerfile*" \
|
||
--exclude-dir=node_modules --exclude-dir=dist --exclude-dir=.turbo 2>/dev/null || true)
|
||
if [ -n "$HITS" ]; then
|
||
echo "FEL: aktuella namnet '$CURRENT' är hårdkodat utanför brand.config.json i:"
|
||
echo "$HITS"
|
||
echo "Använd BRAND.name / {brand}-interpolation i stället."
|
||
FAIL=1
|
||
fi
|
||
|
||
if [ "$FAIL" -eq 0 ]; then
|
||
echo "Varumärkesvakt: OK – namnet lever endast i brand.config.json."
|
||
fi
|
||
exit $FAIL
|