add: Installer funktionen mit auto Update check
This commit is contained in:
1 parent
102b485794
commit
1fb6444444
8 files changed
+422
-10
No files matched your search
@@ -1,12 +1,14 @@
|
||||
@echo off
|
||||
REM Build-Script fuer AnwesenheitPDF.exe
|
||||
REM Build-Script fuer AnwesenheitPDF.exe + Windows-Installer
|
||||
REM
|
||||
REM Ergebnis:
|
||||
REM build/ - temporaere PyInstaller-Artefakte
|
||||
REM dist/ - fertiges Programmverzeichnis (AnwesenheitPDF.exe + alle Abhaengigkeiten)
|
||||
REM + AnwesenheitPDF-Setup-x.y.z.exe (Windows-Installer)
|
||||
REM
|
||||
REM Voraussetzungen:
|
||||
REM pip install -r requirements-dev.txt
|
||||
REM Inno Setup 6 installiert (https://jrsoftware.org/isinfo.php)
|
||||
|
||||
cd /d "%~dp0"
|
||||
|
||||
@@ -14,7 +16,7 @@ echo.
|
||||
echo === AnwesenheitPDF Build ===
|
||||
echo.
|
||||
|
||||
echo [1/3] Abhaengigkeiten installieren...
|
||||
echo [1/4] Abhaengigkeiten installieren...
|
||||
pip install -r requirements.txt --quiet && pip install -r requirements-dev.txt --quiet
|
||||
if %ERRORLEVEL% neq 0 (
|
||||
echo [FEHLER] pip install fehlgeschlagen.
|
||||
@@ -22,7 +24,7 @@ if %ERRORLEVEL% neq 0 (
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo [2/3] Version aktualisieren...
|
||||
echo [2/4] Version aktualisieren...
|
||||
python update_version.py
|
||||
if %ERRORLEVEL% neq 0 (
|
||||
echo [FEHLER] Version-Update fehlgeschlagen.
|
||||
@@ -30,7 +32,7 @@ if %ERRORLEVEL% neq 0 (
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo [3/3] Build starten...
|
||||
echo [3/4] Build starten...
|
||||
echo.
|
||||
|
||||
python -m PyInstaller ^
|
||||
@@ -59,11 +61,104 @@ if not exist "dist\AnwesenheitPDF\template" mkdir "dist\AnwesenheitPDF\template"
|
||||
if not exist "dist\AnwesenheitPDF\output" mkdir "dist\AnwesenheitPDF\output"
|
||||
if exist "template\sab.pdf" copy /Y "template\sab.pdf" "dist\AnwesenheitPDF\template\sab.pdf" >nul
|
||||
|
||||
echo.
|
||||
echo [4/4] Windows-Installer erstellen...
|
||||
|
||||
REM Version aus config.json lesen (Format: "x.y.z+hash" -> nur "x.y.z" verwenden)
|
||||
for /f "tokens=2 delims=:," %%v in ('findstr /c:"\"version\"" config.json') do (
|
||||
set RAW_VERSION=%%v
|
||||
)
|
||||
REM Fuehrende/nachfolgende Leerzeichen und Anfuehrungszeichen entfernen, Hash abschneiden
|
||||
set RAW_VERSION=%RAW_VERSION: =%
|
||||
set RAW_VERSION=%RAW_VERSION:"=%
|
||||
for /f "tokens=1 delims=+" %%c in ("%RAW_VERSION%") do set APP_VERSION=%%c
|
||||
|
||||
echo Version: %APP_VERSION%
|
||||
|
||||
REM Inno Setup Compiler suchen (Standard-Installationspfade)
|
||||
set ISCC_PATH=
|
||||
if exist "%ProgramFiles(x86)%\Inno Setup 6\ISCC.exe" (
|
||||
set "ISCC_PATH=%ProgramFiles(x86)%\Inno Setup 6\ISCC.exe"
|
||||
) else if exist "%ProgramFiles%\Inno Setup 6\ISCC.exe" (
|
||||
set "ISCC_PATH=%ProgramFiles%\Inno Setup 6\ISCC.exe"
|
||||
) else if exist "%LOCALAPPDATA%\Programs\Inno Setup 6\ISCC.exe" (
|
||||
set "ISCC_PATH=%LOCALAPPDATA%\Programs\Inno Setup 6\ISCC.exe"
|
||||
) else (
|
||||
for /f "delims=" %%i in ('where ISCC.exe 2^>nul') do set "ISCC_PATH=%%i"
|
||||
)
|
||||
|
||||
if "%ISCC_PATH%"=="" (
|
||||
echo.
|
||||
echo [WARNUNG] Inno Setup 6 nicht gefunden. Installer wird NICHT erstellt.
|
||||
echo Download: https://jrsoftware.org/isinfo.php
|
||||
echo Nach der Installation Inno Setup 6 neu starten und build.bat erneut ausfuehren.
|
||||
echo.
|
||||
goto build_done
|
||||
)
|
||||
|
||||
"%ISCC_PATH%" /DMyAppVersion=%APP_VERSION% installer\AnwesenheitPDF.iss > build_iscc.log 2>&1
|
||||
|
||||
if %ERRORLEVEL% neq 0 (
|
||||
echo.
|
||||
echo [FEHLER] Installer-Erstellung fehlgeschlagen.
|
||||
echo.
|
||||
type build_iscc.log
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo.
|
||||
echo [OK] Installer erstellt: dist\AnwesenheitPDF-Setup-%APP_VERSION%.exe
|
||||
|
||||
echo.
|
||||
echo [5/5] Installer zu update_check_path deployen...
|
||||
|
||||
REM update_check_path aus config.json auslesen
|
||||
for /f "tokens=2 delims=:," %%d in ('findstr /c:"\"update_check_path\"" config.json') do (
|
||||
set UPDATE_PATH=%%d
|
||||
)
|
||||
REM Leerzeichen und Anfuehrungszeichen entfernen
|
||||
set UPDATE_PATH=%UPDATE_PATH: =%
|
||||
set UPDATE_PATH=%UPDATE_PATH:"=%
|
||||
|
||||
if "%UPDATE_PATH%"=="" (
|
||||
echo [WARNUNG] update_check_path nicht in config.json gefunden. Deployment uebersprungen.
|
||||
goto build_done
|
||||
)
|
||||
|
||||
REM Zielverzeichnis pruefen und ggf. erstellen
|
||||
if not exist "%UPDATE_PATH%" (
|
||||
echo [INFO] Erstelle Zielverzeichnis: %UPDATE_PATH%
|
||||
mkdir "%UPDATE_PATH%"
|
||||
if %ERRORLEVEL% neq 0 (
|
||||
echo [WARNUNG] Konnte Zielverzeichnis nicht erstellen. Deployment uebersprungen.
|
||||
goto build_done
|
||||
)
|
||||
)
|
||||
|
||||
REM Neuen Installer kopieren
|
||||
echo [INFO] Kopiere Installer nach: %UPDATE_PATH%
|
||||
copy /Y "dist\AnwesenheitPDF-Setup-%APP_VERSION%.exe" "%UPDATE_PATH%\AnwesenheitPDF-Setup-%APP_VERSION%.exe" >nul
|
||||
|
||||
if %ERRORLEVEL% neq 0 (
|
||||
echo [WARNUNG] Installer-Deployment fehlgeschlagen (Schreibrechte?).
|
||||
goto build_done
|
||||
)
|
||||
|
||||
echo [OK] Installer deployed zu: %UPDATE_PATH%\AnwesenheitPDF-Setup-%APP_VERSION%.exe
|
||||
|
||||
:build_done
|
||||
echo.
|
||||
echo [OK] Build abgeschlossen.
|
||||
echo Programm: dist\AnwesenheitPDF\AnwesenheitPDF.exe
|
||||
echo Template: dist\AnwesenheitPDF\template\sab.pdf
|
||||
echo Output: dist\AnwesenheitPDF\output
|
||||
echo Programm: dist\AnwesenheitPDF\AnwesenheitPDF.exe
|
||||
echo Template: dist\AnwesenheitPDF\template\sab.pdf
|
||||
echo Output: dist\AnwesenheitPDF\output
|
||||
if not "%ISCC_PATH%"=="" (
|
||||
echo Installer: dist\AnwesenheitPDF-Setup-%APP_VERSION%.exe
|
||||
)
|
||||
if not "%UPDATE_PATH%"=="" (
|
||||
echo Deployed: %UPDATE_PATH%\AnwesenheitPDF-Setup-%APP_VERSION%.exe
|
||||
)
|
||||
echo.
|
||||
echo ... Programm wird gestartet ...
|
||||
start "" "dist\AnwesenheitPDF\AnwesenheitPDF.exe"
|
||||
Reference in new issue
Block a user