Refonte authentification en crypté
This commit is contained in:
@@ -1,39 +1,112 @@
|
||||
@echo off
|
||||
setlocal
|
||||
setlocal EnableExtensions EnableDelayedExpansion
|
||||
|
||||
REM === Définition des chemins ===
|
||||
set "DEV=C:\Users\miche\PycharmProjects\Ratio_Inventaires\Excel\dev\Ratio_dev.xlsm"
|
||||
set "PROD_DIR=C:\Users\miche\PycharmProjects\Ratio_Inventaires\Excel\prod"
|
||||
set "INSTALL_CLIENT=C:\Users\miche\PycharmProjects\Fichiers_Install_Clients\Ratio_Inventaires\Excel"
|
||||
REM === PARAMÈTRES A ADAPTER UNE FOIS ===
|
||||
set "ROOT=C:\Users\miche\PycharmProjects\Ratio_Inventaires"
|
||||
set "DEV_XLSM=%ROOT%\Excel\dev\Ratio_dev.xlsm"
|
||||
set "DEV_AUTH_PY=%ROOT%\Excel\dev\Auth\auth_cli.py"
|
||||
set "VENV_PY=%ROOT%\.venv\Scripts\python.exe"
|
||||
|
||||
REM === Création du nom de fichier daté ===
|
||||
set "DATESTAMP=%date:~6,4%_%date:~3,2%_%date:~0,2%"
|
||||
set "PROD_DIR=%ROOT%\Excel\prod"
|
||||
set "PROD_XLSM=%PROD_DIR%\Ratio_prod.xlsm"
|
||||
set "PROD_AUTH_DIR=%PROD_DIR%\Auth"
|
||||
|
||||
set "INSTALL_CLIENT=%USERPROFILE%\Desktop\Install_Ratio_Inv" REM <- dossier prêt à livrer au client
|
||||
set "CLIENT_AUTH_DIR=%INSTALL_CLIENT%\Auth"
|
||||
|
||||
REM === DATE ISO robuste (indépendant des paramètres régionaux) ===
|
||||
for /f %%i in ('powershell -NoProfile -Command "(Get-Date).ToString(\"yyyy_MM_dd\")"') do set "DATESTAMP=%%i"
|
||||
set "ARCHIVE_FILE=%PROD_DIR%\Ratio_prod_%DATESTAMP%.xlsm"
|
||||
|
||||
echo Sauvegarde de la version actuelle de PROD...
|
||||
if exist "%PROD_DIR%\Ratio_prod.xlsm" copy /Y "%PROD_DIR%\Ratio_prod.xlsm" "%ARCHIVE_FILE%"
|
||||
|
||||
echo Mise à jour du fichier Ratio_prod.xlsm depuis DEV...
|
||||
copy /Y "%DEV%" "%PROD_DIR%\Ratio_prod.xlsm"
|
||||
|
||||
echo Copie vers le dossier INSTALL_CLIENT (version sans date)...
|
||||
copy /Y "%PROD_DIR%\Ratio_prod.xlsm" "%INSTALL_CLIENT%\Ratio_prod.xlsm"
|
||||
echo.
|
||||
echo === [1/6] Préparation des dossiers ========================================
|
||||
if not exist "%PROD_DIR%" mkdir "%PROD_DIR%"
|
||||
if not exist "%PROD_AUTH_DIR%" mkdir "%PROD_AUTH_DIR%"
|
||||
if not exist "%INSTALL_CLIENT%" mkdir "%INSTALL_CLIENT%"
|
||||
if not exist "%CLIENT_AUTH_DIR%" mkdir "%CLIENT_AUTH_DIR%"
|
||||
|
||||
echo.
|
||||
echo ✔️ Mise à jour complète effectuée (archive, prod, client)
|
||||
pause
|
||||
echo Nettoyage des anciennes archives (on garde les 5 plus récentes)...
|
||||
|
||||
pushd "%PROD_DIR%"
|
||||
setlocal EnableDelayedExpansion
|
||||
set count=0
|
||||
|
||||
for /f "delims=" %%f in ('dir /b /o-d "Ratio_prod_????_??_??.xlsm"') do (
|
||||
set /a count+=1
|
||||
if !count! gtr 5 (
|
||||
echo Suppression de l'ancienne archive : %%f
|
||||
del "%%f"
|
||||
)
|
||||
echo === [2/6] (Optionnel) Build de auth_cli.exe avec PyInstaller ==============
|
||||
if exist "%VENV_PY%" (
|
||||
echo Compilation via venv: %VENV_PY%
|
||||
"%VENV_PY%" -m PyInstaller --onefile --clean --distpath "%PROD_AUTH_DIR%" "%DEV_AUTH_PY%"
|
||||
if errorlevel 1 (
|
||||
echo [WARN] Echec de compilation. On continue avec l'exe existant s'il est présent.
|
||||
)
|
||||
) else (
|
||||
echo [WARN] VENV introuvable: %VENV_PY% -> build ignore
|
||||
)
|
||||
|
||||
echo.
|
||||
echo === [3/6] Sauvegarde de la prod courante ==================================
|
||||
if exist "%PROD_XLSM%" (
|
||||
echo Sauvegarde -> "%ARCHIVE_FILE%"
|
||||
copy /Y "%PROD_XLSM%" "%ARCHIVE_FILE%" >nul
|
||||
) else (
|
||||
echo Pas de prod courante a sauvegarder.
|
||||
)
|
||||
|
||||
echo.
|
||||
echo === [4/6] Mise a jour de la prod depuis le dev ============================
|
||||
if not exist "%DEV_XLSM%" (
|
||||
echo [ERREUR] Fichier DEV introuvable: %DEV_XLSM%
|
||||
goto :EOF
|
||||
)
|
||||
copy /Y "%DEV_XLSM%" "%PROD_XLSM%" >nul
|
||||
if errorlevel 1 (
|
||||
echo [ERREUR] Copie du XLSM vers PROD echouee.
|
||||
goto :EOF
|
||||
)
|
||||
|
||||
REM On s'assure que l'exe est bien present et on deblocque Windows (SmartScreen)
|
||||
if exist "%PROD_AUTH_DIR%\auth_cli.exe" (
|
||||
powershell -NoProfile -Command "Unblock-File -Path '%PROD_AUTH_DIR%\auth_cli.exe'" 2>nul
|
||||
) else (
|
||||
echo [ERREUR] auth_cli.exe absent dans %PROD_AUTH_DIR%
|
||||
echo Lance d'abord la compilation ou copie l'exe manuellement.
|
||||
goto :EOF
|
||||
)
|
||||
|
||||
REM Le .env doit exister dans PROD\Auth (modele ou reel)
|
||||
if not exist "%PROD_AUTH_DIR%\.env" (
|
||||
echo [WARN] Aucun .env dans %PROD_AUTH_DIR% -> Pense a y mettre DB_HOST/DB_NAME/DB_USER/DB_PASSWORD
|
||||
)
|
||||
|
||||
echo.
|
||||
echo === [5/6] Préparation du dossier client ===================================
|
||||
copy /Y "%PROD_XLSM%" "%INSTALL_CLIENT%\Ratio_prod.xlsm" >nul
|
||||
if errorlevel 1 (
|
||||
echo [ERREUR] Copie du XLSM vers INSTALL_CLIENT echouee.
|
||||
goto :EOF
|
||||
)
|
||||
|
||||
copy /Y "%PROD_AUTH_DIR%\auth_cli.exe" "%CLIENT_AUTH_DIR%\auth_cli.exe" >nul
|
||||
powershell -NoProfile -Command "Unblock-File -Path '%CLIENT_AUTH_DIR%\auth_cli.exe'" 2>nul
|
||||
|
||||
if exist "%PROD_AUTH_DIR%\.env" (
|
||||
copy /Y "%PROD_AUTH_DIR%\.env" "%CLIENT_AUTH_DIR%\.env" >nul
|
||||
) else (
|
||||
echo [INFO] Pas de .env a copier (client). Tu pourras le remplir a la main.
|
||||
)
|
||||
|
||||
echo.
|
||||
echo === [6/6] Nettoyage: on garde 5 archives les plus recentes ===============
|
||||
pushd "%PROD_DIR%"
|
||||
set count=0
|
||||
for /f "delims=" %%f in ('dir /b /o-d "Ratio_prod_20??_??_??.xlsm"') do (
|
||||
set /a count+=1
|
||||
if !count! gtr 5 (
|
||||
echo Suppression: %%f
|
||||
del "%%f"
|
||||
)
|
||||
)
|
||||
popd
|
||||
|
||||
echo.
|
||||
echo [OK] Release terminee :
|
||||
echo - PROD : "%PROD_XLSM%"
|
||||
echo - AUTH : "%PROD_AUTH_DIR%\auth_cli.exe" + ".env"
|
||||
echo - CLIENT: "%INSTALL_CLIENT%\Ratio_prod.xlsm" + "Auth\*"
|
||||
echo.
|
||||
pause
|
||||
endlocal
|
||||
popd
|
||||
Reference in New Issue
Block a user