Files
TDI-Dashboard/Tool/env_manager.py
T
Yan Xell 956f8aec56
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/tag/ci Pipeline failed
ci/woodpecker/tag/deploy-test Pipeline was successful
prevedi un postgres sql
2026-05-19 15:34:27 +02:00

63 lines
2.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, _conn, ConnType
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
def update_db_conn(
conn_type: str,
pg_host: str = '',
pg_port: str = '5432',
pg_db: str = '',
pg_user: str = '',
pg_password: str = '',
) -> None:
"""Write RPA_CONN_TYPE and PG_* vars to .env and update _conn in memory."""
env_path = REPORTS_DIR / '.env'
text = env_path.read_text(encoding='utf-8')
text = _set_env_key(text, 'RPA_CONN_TYPE', conn_type)
text = _set_env_key(text, 'PG_HOST', pg_host or 'localhost')
text = _set_env_key(text, 'PG_PORT', pg_port or '5432')
text = _set_env_key(text, 'PG_DB', pg_db)
text = _set_env_key(text, 'PG_USER', pg_user)
text = _set_env_key(text, 'PG_PASSWORD', pg_password)
env_path.write_text(text, encoding='utf-8')
_conn['type'] = ConnType.POSTGRES if conn_type == 'postgres' else ConnType.SQLITE
_conn['pg_host'] = pg_host or 'localhost'
_conn['pg_port'] = pg_port or '5432'
_conn['pg_db'] = pg_db
_conn['pg_user'] = pg_user
_conn['pg_password'] = pg_password