"""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.")