@echo off
REM Folgende Übergabeparameter stehen zur Verfügung
REM %1%: absoluter Pfad zum aktuellen Verzeichnis in dem das Update-Archiv entpackt wurde
REM %2%: absoluter Pfad zum Ordner in dem die files.zip entpackt wurde (ist '-', wenn keine Dateien dabei waren)
REM %3%: absoluter Pfad zum DMS
REM %4%: alte Build-Version
REM %5%: neue Build-Version
REM
REM Das aktuelle Verzeichnis ist das Verzeichnis indem das Update entpackt wurde
REM Das müsste dem Wert aus %1% entsprechen

echo Dieses Skript veranlasst die Neuerzeugung der Panels durch sp2check.
echo Ausserdem werden nicht behr benoetigte Dateien entfernt
echo Beginne Verarbeirungsprozess

cd %3%\pan
REM Sicherung erstellen
echo Backup der Panels
copy /V /Y r6.pan r6.bak
if NOT %ERRORLEVEL%==0 goto Fehler
copy /V /Y f6.pan f6.bak
if NOT %ERRORLEVEL%==0 goto Fehler
copy /V /Y kfzadmi.pan kfzadmi.bak
if NOT %ERRORLEVEL%==0 goto Fehler

REM mit sp2check komprimieren
echo Verarbeiten der Panels durch sp2check
sp2check.exe f6.pan f6_comp.pan
if NOT %ERRORLEVEL%==0 goto Fehler
sp2check.exe r6.pan r6_comp.pan
if NOT %ERRORLEVEL%==0 goto Fehler
sp2check.exe kfzadmi.pan kfzadmi_comp.pan
if NOT %ERRORLEVEL%==0 goto Fehler

REM Umkopieren der _comp in die Originaldatei und löschen
REM der _comp Datei. Wenn hier ein Fehler auftritt, müssen 
REM die alten Daten wiederhergestellt werden
echo Uebernahme der verarbeiteten Panels
copy /V /Y f6_comp.pan f6.pan
if NOT %ERRORLEVEL%==0 goto FehlerRestore
DEL /F f6_comp.pan
copy /V /Y r6_comp.pan r6.pan
if NOT %ERRORLEVEL%==0 goto FehlerRestore
DEL /F r6_comp.pan
copy /V /Y kfzadmi_comp.pan kfzadmi.pan
if NOT %ERRORLEVEL%==0 goto FehlerRestore
DEL /F kfzadmi_comp.pan

REM Löschen der Datensicherung und beenden
echo Loeschen der Backups
DEL /F f6.bak
DEL /F r6.bak
DEL /F kfzadmi.bak

cd ..
echo Bereinigen nicht mehr benoetigter Pfade aus %3%
del /Q "%3%\eric*"
rmdir /S /Q "%3%/dlls"
rmdir /S /Q "%3%/schema"
rmdir /S /Q "%3%/printxml"
rmdir /S /Q "%3%/plugins"
rmdir /S /Q "%3%/divpr"
goto Erfolg

:Fehler
echo Es trat ein Fehler auf. Beende!
EXIT /B 1

:FehlerRestore
REM Zurück sichern der Backups. Tritt hier ein Fehler auf,
REM befindet sich das System in einem nicht nutzbaren Zustand.
REM In diesem Fall wird Exitcode 100 geliefert
echo Ein Fehler ist aufgetreten! Die Backups werden zurueck gespielt
copy /V /Y r6.bak r6.pan
if NOT %ERRORLEVEL%==0 goto Fatal
copy /V /Y f6.bak f6.pan
if NOT %ERRORLEVEL%==0 goto Fatal
copy /V /Y kfzadmi.bak kfzadmi.pan
if NOT %ERRORLEVEL%==0 goto Fatal
EXIT /B 10

:Fatal
echo !!! Es trat ein fataler Fehler auf. Das System ist moeglicherweise nicht mehr nutzbar !!!
exit /B 100

:Erfolg
echo Die Verarbeirung wurde erdolgreich abgeschlossen
