Complete training workflow and acceptance hardening
This commit is contained in:
parent
4c4b91064f
commit
7237265833
243 changed files with 17014 additions and 1500 deletions
25
scripts/validate_production_env.sh
Normal file
25
scripts/validate_production_env.sh
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
|
||||
if [[ -n "${POSTGRES_PASSWORD+x}" ]]; then
|
||||
password="$POSTGRES_PASSWORD"
|
||||
elif [[ -f "$repo_root/.env" ]]; then
|
||||
matches="$(grep -c '^POSTGRES_PASSWORD=' "$repo_root/.env" || true)"
|
||||
if [[ "$matches" != "1" ]]; then
|
||||
echo "Укажите ровно один POSTGRES_PASSWORD в .env или окружении." >&2
|
||||
exit 2
|
||||
fi
|
||||
password="$(sed -n 's/^POSTGRES_PASSWORD=//p' "$repo_root/.env")"
|
||||
else
|
||||
echo "Для production запуска скопируйте .env.example в .env и задайте POSTGRES_PASSWORD." >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if [[ ! "$password" =~ ^[A-Za-z0-9._~-]{32,}$ ]]; then
|
||||
echo "POSTGRES_PASSWORD должен содержать не менее 32 символов: латиница, цифры, точка, дефис, подчёркивание или тильда. Значение не показано." >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
echo "Production DB secret задан и удовлетворяет формату (само значение не отображается)."
|
||||
Loading…
Reference in a new issue