Louis Mazin a2fda03471 first
2026-10-15 14:17:25 +02:00

41 lines
1.3 KiB
Python

"""Complète les secrets manquants du .env, sans écraser les valeurs existantes."""
from pathlib import Path
import secrets
import stat
ROOT = Path(__file__).resolve().parents[1]
ENV = ROOT / ".env"
SOURCE = ROOT / ".env.example"
if not ENV.exists():
ENV.write_text(SOURCE.read_text(encoding="utf-8"), encoding="utf-8")
values = ENV.read_text(encoding="utf-8").splitlines(keepends=True)
secrets_to_generate = {
"SECRET_KEY": lambda: secrets.token_urlsafe(64),
"MYSQL_PASSWORD": lambda: secrets.token_urlsafe(24),
"MYSQL_ROOT_PASSWORD": lambda: secrets.token_urlsafe(28),
"ADMIN_PASSWORD": lambda: secrets.token_urlsafe(16),
}
updated = set()
result = []
for line in values:
if line.lstrip().startswith("#") or "=" not in line:
result.append(line)
continue
key, val = line.rstrip("\n").split("=", 1)
if key in secrets_to_generate and not val.strip():
line = f"{key}={secrets_to_generate[key]()}\n"
updated.add(key)
result.append(line)
ENV.write_text("".join(result), encoding="utf-8")
if hasattr(ENV, "chmod"):
ENV.chmod(stat.S_IRUSR | stat.S_IWUSR)
print("Fichier .env prêt.")
if updated:
print("Secrets générés :", ", ".join(sorted(updated)))
print("Le mot de passe admin est dans .env : conserve-le de manière sûre.")
else:
print("Aucune valeur existante modifiée.")