@echo off setlocal enableextensions TITLE Frank - Deploy REM ================================================================ REM deploy_DEV_LOCAL.bat - Deploy da A verso server B REM Mirror 1:1 - esclude: .git .claude venv logs (python INCLUSA) REM Esclusi da deploy (solo A): deploy_DEV_LOCAL.bat REM Lanciare da: C:\PYTHON\Frank\ (solo su A) REM ================================================================ set "SRC=%~dp0" set "SRC=%SRC:~0,-1%" set "SERVER=I:\SOFTWARE\PYTHON_SRV\PYTHON_LOCAL\Frank" echo ================================================================ echo Frank - Deploy A ^> B echo ================================================================ echo Sorgente : %SRC% echo Server : %SERVER% echo ================================================================ echo. set "SERVER_PARENT=I:\SOFTWARE\PYTHON_SRV\PYTHON_LOCAL" if not exist "%SERVER_PARENT%\" ( echo [ERRORE] Server non raggiungibile. echo Verificare VPN e accesso alla share. pause & exit /b 1 ) if not exist "%SERVER%\" ( echo Cartella Frank non trovata su B - creazione in corso... mkdir "%SERVER%" echo Cartella creata. echo. ) echo Deploy in corso... %SystemRoot%\System32\robocopy.exe "%SRC%" "%SERVER%" /MIR /NFL /NJH /NJS /XD .git .claude venv logs __pycache__ _archive /XF deploy_DEV_LOCAL.bat BRIEFING.md desktop.ini scheduler.db scheduler.db.backup frank.db *.db set ROBO_EXIT=%ERRORLEVEL% REM python\ inclusa nel deploy. Senza /XO: sovrascrive sempre (evita problemi di timestamp su B) REM Exit code robocopy: 0-3 = OK, 4+ = errore if %ROBO_EXIT% GTR 3 ( echo. echo [ERRORE] Robocopy exit code: %ROBO_EXIT% if "%~1"=="" pause exit /b %ROBO_EXIT% ) echo. echo ================================================================ echo Deploy completato. echo ================================================================ echo. echo Esclusi: .git .claude venv logs _archive *.db echo Esclusi da B: deploy_DEV_LOCAL.bat BRIEFING.md echo python\ inclusa nel deploy (sovrascrittura completa — garantisce consistenza) echo. REM pause solo se lanciato interattivamente (doppio click), non da script/Claude if "%~1"=="" pause endlocal