@echo off setlocal set "SRC=%~dp0" set "SRC=%SRC:~0,-1%" set "DST=\\Mediaset.it\cologno\Osservatorio_Progetti\MonitorOsservatorio\MonitorOsservatorioPy" set "PY=%SRC%\python\python.exe" echo. echo Deploy MonitorOsservatorioPy echo Da : %SRC% echo A : %DST% echo. REM --- Chiudi l'applicativo se in esecuzione --- echo Chiusura applicativo in corso... taskkill /IM pythonw.exe /F >nul 2>&1 taskkill /IM python.exe /F >nul 2>&1 timeout /T 2 /NOBREAK >nul REM --- Aggiorna ambiente Python embedded --- echo Verifica pacchetti Python embedded... REM Installa pywebview se non presente "%PY%" -c "import webview" >nul 2>&1 if %ERRORLEVEL% NEQ 0 ( echo [pip] Installazione pywebview... "%PY%" -m pip install pywebview --quiet if %ERRORLEVEL% NEQ 0 ( echo ERRORE: pip install pywebview fallito. pause exit /b 1 ) echo [pip] pywebview installato. ) else ( echo [pip] pywebview gia' presente. ) REM Rimuovi PyQt6-WebEngine se ancora installato (non piu' usato, ~300MB) "%PY%" -c "import PyQt6.QtWebEngineWidgets" >nul 2>&1 if %ERRORLEVEL% EQU 0 ( echo [pip] Rimozione PyQt6-WebEngine ^(non piu' necessario^)... "%PY%" -m pip uninstall PyQt6-WebEngine PyQt6-WebEngine-Qt6 PyQt6-WebEngineSubwheel-Qt6 -y >nul 2>&1 echo [pip] PyQt6-WebEngine rimosso. ) REM --- Pulisci sessione del deployer (era test, non va in produzione) --- del "%DST%\utenti\%USERNAME%\current_session.json" >nul 2>&1 del "%DST%\utenti\%USERNAME%\current_source.xlsx" >nul 2>&1 REM --- Aggiorna version.txt con timestamp del deploy --- for /f %%I in ('powershell -NoProfile -Command "Get-Date -Format yyyyMMddHHmmss"') do set _DT=%%I echo %_DT%> "%SRC%\version.txt" echo Versione: %_DT% REM --- Copia tutto (inclusa python\ aggiornata) --- echo. echo Copia verso share... robocopy "%SRC%" "%DST%" /MIR /XD __pycache__ .git venv appui utenti /XF "*.pyc" "*.jsonl" "*.xlsx" "*.xlam" "SESSION_NOTES.md" "CLAUDE.md" "desktop.ini" "deploy.bat" "dev.bat" /NP /TEE /LOG:"%TEMP%\deploy_monitor.log" if %ERRORLEVEL% LEQ 7 ( echo. echo Deploy completato con successo. echo Le macchine client aggiorneranno python\ al prossimo avvio. ) else ( echo. echo ATTENZIONE: robocopy ha restituito codice %ERRORLEVEL% echo Controlla %TEMP%\deploy_monitor.log ) endlocal pause