Files
TDI-Dashboard/Tool/env_manager.py
T
Luca Banfi e9d07162d9
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline failed
lint syntax fixes
2026-05-18 16:25:52 +02:00

34 lines
1.1 KiB
Python

# Tool/env_manager.py
#
# Lettura e scrittura delle variabili d'ambiente nel file .env del dashboard.
import re
from .config import REPORTS_DIR, _auth
def _set_env_key(text: str, key: str, value: str) -> str:
"""Replace or append a KEY=value line in .env content."""
new, n = re.subn(rf'^#?\s*{key}=.*$', f'{key}={value}', text, flags=re.MULTILINE)
return new if n else text + f'\n{key}={value}\n'
def update_auth(enabled: bool, user: str | None = None, password: str | None = None) -> None:
"""Write LOGIN/DASHBOARD_USER/DASHBOARD_PASSWORD to .env and update _auth in memory."""
env_path = REPORTS_DIR / '.env'
text = env_path.read_text(encoding='utf-8')
text = _set_env_key(text, 'LOGIN', 'true' if enabled else 'false')
if user is not None:
text = _set_env_key(text, 'DASHBOARD_USER', user)
if password is not None:
text = _set_env_key(text, 'DASHBOARD_PASSWORD', password)
env_path.write_text(text, encoding='utf-8')
_auth['enabled'] = enabled
if user is not None:
_auth['user'] = user
if password is not None:
_auth['password'] = password