@echo off if "%1"=="checkoutbin" goto checkoutbin if "%1"=="start" goto start setlocal set ORIGINAL0PATH=%~dp0 cd /D c:\ call "%ORIGINAL0PATH%..\_utils.bat" init for /F "delims=" %%i in ('date /t') do set TIMESTAMP=%%i for /F "tokens=1,2" %%i in ("%TIMESTAMP%") do set TIMESTAMP=%%j.%%i for /F "delims=. tokens=1,2,3,4" %%i in ("%TIMESTAMP%") do set TIMESTAMP=%%k.%%j.%%i.%%l @rem ******************************************** set A1GSTAND= set GMSTAND=d:\gm set GM_VERSION=GM2.6 set LOGFILE=%GMSTAND%\log\standbau.log set STAND=G:\%GM_VERSION%_%JDK_VERSION%\%TIMESTAMP% set PVCSBIN=C:\Programme\PVCS\vm\win32\bin set PVCSPROJECT=v:\PvcsSwf\GM220 set PVCSLIST=%TEMP%\standbau.lst set MAILHOST=mailgw2.rwe.com set MAILTO=Attila.Lakatos@rwesystems.com, Ismail.Oezer@rwesystems.com, Andreas.Lehmkuehler@rwesystems.com Set ORANTBIN=d:\orant\bin set ORACLEHOST=standbau/standbau@standbau @rem ******************************************** mkdir "%GMSTAND%\shared" 2>nul call "%ORIGINAL0PATH%setbuildenv.bat" shared if defined ERRORTEXT goto fehler if not defined TEEFOUND ( set ERRORTEXT=tee.exe fehlt! goto fehler ) If not exist "%PVCSBIN%\pcli.exe" ( set ERRORTEXT=pcli fehlt aus %PVCSBIN% goto fehler ) if not exist "%PVCSBIN%\vcs.exe" ( set ERRORTEXT=vcs fehlt aus %PVCSBIN% goto fehler ) if not exist "%PVCSBIN%\get.exe" ( set ERRORTEXT=get fehlt aus %PVCSBIN% goto fehler ) if not exist "%PVCSPROJECT%\_config_" ( set ERRORTEXT=PVCSPROJECT ist falsch: %PVCSPROJECT% goto fehler ) set PVCSPROJECT=%PVCSPROJECT%\_config_ goto init :fehler if defined ERRORTEXT echo Fehler! %ERRORTEXT% echo "Usage: %ORIGINAL0PATH%standbau.bat [-TEST] [-AUSLIEFERUNG] [-GEN] [-DB] -A1G stand [-CHECKOUT label] [-CHECKOUTTIP] [-LABEL label] [-POSTFIX postfix]" echo  :ende endlocal goto :EOF :init set PARAM=%1 if /I "%PARAM%" EQU "/?" goto fehler if /I "%PARAM%" EQU "-h" goto fehler set TESTBAU= if /I "%PARAM%" NEQ "-test" goto ntest set TESTBAU=1 shift set PARAM=%1 :ntest set AUSLIEFERUNG= If /I "%PARAM%" NEQ "-auslieferung" goto nauslieferung set AUSLIEFERUNG=1 shift set PARAM=%1 :nauslieferung Set GENER= if /I "%PARAM%" NEQ "-gen" goto ngen set GENER=1 shift set PARAM=%1 :ngen set DBAU= if /I "%PARAM%" NEQ "-db" goto ndb set DBAU=1 shift set PARAM=%1 if not exist "%ORANTBIN%\sqlplus.exe" ( set ERRORTEXT=sqlplus fehlt aus %ORANTBIN% goto fehler ) if not exist "%ORANTBIN%\exp.exe" ( set ERRORTEXT=exp fehlt aus %ORANTBIN% goto fehler ) :ndb if /I "%PARAM%" NEQ "-a1g" goto na1g shift set PARAM=%1 if defined PARAM %CHECKPARAM% set A1GSTAND=%PARAM% shift set PARAM=%1 :na1g Set GETLABEL=Erledigt if /I "%PARAM%" NEQ "-checkout" goto ncheckout shift set PARAM=%1 if defined PARAM %CHECKPARAM% set GETLABEL=%PARAM% shift set PARAM=%1 :ncheckout if /I "%PARAM%" NEQ "-checkouttip" goto ncheckouttip set GETLABEL= :ncheckouttip set SETLABEL= if /I "%PARAM%" NEQ "-label" goto nlabel shift set PARAM=%1 if defined PARAM %CHECKPARAM% set SETLABEL=%PARAM% shift set PARAM=%1 :nlabel if /I "%PARAM%" NEQ "-postfix" goto npostfix shift set PARAM=%1 if defined PARAM %CHECKPARAM% set STAND=%STAND%%PARAM% shift set PARAM=%1 :npostfix if defined PARAM ( set ERRORTEXT=Unbekannter Parameter: %PARAM% goto fehler ) if defined TESTBAU set STAND=Standbau Test If not defined A1GSTAND ( set ERRORTEXT=A1GSTAND ist nicht angegeben! goto fehler ) set ERRORTEXT=A1G Stand fehlt aus %A1GSTAND% if not exist "%A1GSTAND%\shared\shared.jar" goto fehler if not exist "%A1GSTAND%\server\server.jar" goto fehler if not exist "%A1GSTAND%\client\client.jar" goto fehler set ERRORTEXT= del /F "%TEMP%\standbau.bat" 2>nul copy "%ORIGINAL0PATH%standbau.bat" "%TEMP%" >nul "%TEMP%\standbau.bat" checkoutbin echo Kopieren nach temp fehlgeschlagen, standbau abgebrochen! goto :EOF :checkoutbin rmdir /q /s "%GMSTAND%" 2>nul mkdir "%GMSTAND%\log" 2>nul set MAILFILE=%GMSTAND%\log\standbau.mail echo GM-Standbau gestartet>"%MAILFILE%" date /t >>"%MAILFILE%" time /t >>"%MAILFILE%" echo.>>"%MAILFILE%" set PP=/bin call :getpp if exist "%GMSTAND%\bin\build\patches_%JDK_VERSION%" move "%GMSTAND%\bin\build\patches_%JDK_VERSION%\javacpatch.jar" "%GMSTAND%\bin\build\" >nul for /F "delims=" %%i in ('dir /A:D /B "%GMSTAND%\bin\build"') do rmdir /q /s "%GMSTAND%\bin\build\%%i" if exist "%GMSTAND%\bin\build\javacpatch.jar" ( mkdir "%GMSTAND%\bin\build\patches_%JDK_VERSION%" move "%GMSTAND%\bin\build\javacpatch.jar" "%GMSTAND%\bin\build\patches_%JDK_VERSION%" >nul ) if not exist "%GMSTAND%\bin\build\standbau.bat" ( echo Bitte das Verzeichniss %GMSTAND% im Explorer verlassen! pause goto checkoutbin ) "%GMSTAND%\bin\build\standbau.bat" start echo Auschecken von bin fehlgeschlagen, standbau abgebrochen! goto :EOF :start del /F "%TEMP%\standbau.bat" 2>>"%LOGFILE%" mkdir "%GMSTAND%\webclient\props" 2>nul cd /D "%GMSTAND%\webclient\props" "%JAVAHOME%\bin\jar" xf "%A1GSTAND%\client\cheops.war" cd /D c:\ set PP=/Implementation call :getpp set PP=/devtools call :getpp echo if not defined A1GSTAND set A1GSTAND=%A1GSTAND%>"%GMSTAND%\devtools\bin\setlocalenv" type "%GMSTAND%\devtools\bin\setlocalenv.bat">>"%GMSTAND%\devtools\bin\setlocalenv" del /F "%GMSTAND%\devtools\bin\setlocalenv.bat" move "%GMSTAND%\devtools\bin\setlocalenv" "%GMSTAND%\devtools\bin\setlocalenv.bat" >nul mkdir "%GMSTAND%\shared\lib\stabil" 2>nul copy "%A1GSTAND%\shared\shared.jar" "%GMSTAND%\shared\lib\stabil\_a1g_shared.jar" >nul if exist "%A1GSTAND%\shared\shared_boot.jar" ( mkdir "%GMSTAND%\shared\lib\boot_%JDK_VERSION%" 2>nul copy "%A1GSTAND%\shared\shared_boot.jar" "%GMSTAND%\shared\lib\boot_%JDK_VERSION%\_a1g.jar" >nul ) mkdir "%GMSTAND%\shared\lib\endorsed" 2>nul copy "%A1GSTAND%\shared\lib\endorsed\*.jar" "%GMSTAND%\shared\lib\endorsed\" >nul mkdir "%GMSTAND%\shared\idl\_include" 2>nul xcopy /S /Q /I "%A1GSTAND%\shared\idl" "%GMSTAND%\shared\idl\_include" >nul copy "%A1GSTAND%\shared\shared_src.jar" "%GMSTAND%\shared\src\" >nul mkdir "%GMSTAND%\server\lib\stabil" 2>nul copy "%A1GSTAND%\server\server.jar" "%GMSTAND%\server\lib\stabil\_a1g_server.jar" >nul if exist "%A1GSTAND%\server\server_boot.jar" ( mkdir "%GMSTAND%\server\lib\boot_%JDK_VERSION%" 2>nul copy "%A1GSTAND%\server\server_boot.jar" "%GMSTAND%\server\lib\boot_%JDK_VERSION%\_a1g.jar" >nul ) copy "%A1GSTAND%\server\server_src.jar" "%GMSTAND%\server\src\" >nul mkdir "%GMSTAND%\client\lib\stabil" 2>nul copy "%A1GSTAND%\client\client.jar" "%GMSTAND%\client\lib\stabil\_a1g_client.jar" >nul if exist "%A1GSTAND%\client\client_boot.jar" ( mkdir "%GMSTAND%\client\lib\boot_%JDK_VERSION%" 2>nul copy "%A1GSTAND%\client\client_boot.jar" "%GMSTAND%\client\lib\boot_%JDK_VERSION%\_a1g.jar" >nul ) copy "%A1GSTAND%\client\client_src.jar" "%GMSTAND%\client\src\" >nul copy "%A1GSTAND%\bin\sm.bat" "%GMSTAND%\bin\" >nul xcopy /s /i "%A1GSTAND%\servermanager" "%GMSTAND%\servermanager" >nul xcopy /s /i "%A1GSTAND%\printclient" "%GMSTAND%\printclient" >nul if exist X:\Objektmodell\Aom goto remotex del /F /S /Q "X:\Objektmodell\Cdfs" >nul set PP=/Objektmodell/Cdfs set OLDLABEL=%GETLABEL% set GETLABEL= call :getpp set GETLABEL=%OLDLABEL% set OLDLABEL= goto pregener :remotex echo "X: ist nicht lokal gemappt, Cdifs werden nicht ausgechecked!" echo  :pregener if not defined GENER goto postgener set LOGTEXT=Generator echo Generierungsergebnisse:>>"%MAILFILE%" call :logheader mkdir "%GMSTAND%\devtools\generator\log" 2>nul call "%GMSTAND%\devtools\generator\generator.bat" -batch %TEE% "%GMSTAND%\devtools\generator\log\generator.log" find "Anzahl der beanstandeten " "%GMSTAND%\devtools\generator\log\MethodsFound.html">>"%MAILFILE%" find /I /C "Fehler" "%GMSTAND%\devtools\generator\log\generator.log">nul if ERRORLEVEL 1 goto nogenerror find /I "Fehler" "%GMSTAND%\devtools\generator\log\generator.log">>"%MAILFILE%" goto checkgenwarning :nogenerror Echo Keine Generierungsfehlermeldungen>>"%MAILFILE%" :checkgenwarning find /I /C "Warnung" "%GMSTAND%\devtools\generator\log\generator.log">nul if ERRORLEVEL 1 goto nogenwarning find /I "Warnung" "%GMSTAND%\devtools\generator\log\generator.log">>"%MAILFILE%" goto checkgenend :nogenwarning Echo Keine Generierungswarnungen>>"%MAILFILE%" :checkgenend if defined AUSLIEFERUNG move "%GMSTAND%\devtools\generator\log" "%GMSTAND%\log\generator" >nul :postgener call "%GMSTAND%\bin\build\build.bat" -standbau -jar -ignoreidlerror -batchmode shared %TEE% "%LOGFILE%" call "%GMSTAND%\bin\build\build.bat" -standbau -jar -ignoreidlerror -batchmode server %TEE% "%LOGFILE%" call "%GMSTAND%\bin\build\build.bat" -standbau -jar -ignoreidlerror -batchmode client %TEE% "%LOGFILE%" call "%GMSTAND%\bin\build\build.bat" -standbau -jar -batchmode asyncclient %TEE% "%LOGFILE%" call "%GMSTAND%\bin\build\build.bat" -standbau -jar -batchmode webclient %TEE% "%LOGFILE%" move "%GMSTAND%\webclient\webclient.jar" "%GMSTAND%\client\cheops.war" >nul rmdir /q /s "%GMSTAND%\webclient" call "%GMSTAND%\bin\build\build.bat" -standbau -jar -batchmode tools %TEE% "%LOGFILE%" call "%GMSTAND%\bin\build\build.bat" -standbau -jar -batchmode devtools dbloader %TEE% "%LOGFILE%" if not defined DBAU goto postdb set LOGTEXT=DBLoader Oracle call :logheader %ORANTBIN%\sqlplus -silent %ORACLEHOST% "@%GMSTAND%\devtools\ccenter\drop_objects.sql" del exec_drop.sql copy "%GMSTAND%\devtools\standbau_oracle_pos.cml" "%GMSTAND%\devtools\ccenter\props\pos.cml" >nul mkdir "%GMSTAND%\devtools\ccenter\log" 2>nul call "%GMSTAND%\devtools\ccenter\ccenter.bat" "%GMSTAND%\devtools\ccenter\props\oracle.ini" %TEE% "%GMSTAND%\devtools\ccenter\log\oracle.log" del "%GMSTAND%\devtools\ccenter\props\pos.cml" %ORANTBIN%\exp %ORACLEHOST% "LOG=%GMSTAND%\devtools\ccenter\log\export_leer.log" "FILE=%GMSTAND%\server\db\gm.leer.dmp" mkdir "%GMSTAND%\devtools\dbloader\log" 2>nul mkdir "%GMSTAND%\devtools\dbloader\props" 2>nul move "%GMSTAND%\devtools\standbau_oracle_pos.cml" "%GMSTAND%\devtools\dbloader\props\pos.cml" >nul call "%GMSTAND%\devtools\dbloader\dbloader.bat" /Zaehler_FirstList.txt %TEE% "%GMSTAND%\devtools\dbloader\log\oracle.log" call "%GMSTAND%\devtools\dbloader\dbloader.bat" /InitialList.txt %TEE% "%GMSTAND%\devtools\dbloader\log\oracle.log" %ORANTBIN%\exp %ORACLEHOST% "LOG=%GMSTAND%\devtools\ccenter\log\export_initialDaten.log" "FILE=%GMSTAND%\server\db\gm.initialDaten.dmp" call "%GMSTAND%\devtools\dbloader\dbloader.bat" /INT_List.txt %TEE% "%GMSTAND%\devtools\dbloader\log\oracle.log" %ORANTBIN%\exp %ORACLEHOST% "LOG=%GMSTAND%\devtools\ccenter\log\export_INTDaten.log" "FILE=%GMSTAND%\server\db\gm.INTDaten.dmp" call "%GMSTAND%\devtools\dbloader\dbloader.bat" /TestList.txt %TEE% "%GMSTAND%\devtools\dbloader\log\oracle.log" %ORANTBIN%\exp %ORACLEHOST% "LOG=%GMSTAND%\devtools\ccenter\log\export.log" "FILE=%GMSTAND%\server\db\gm.dmp" rmdir /q /s "%GMSTAND%\devtools\dbloader\props" set LOGTEXT=DBLoader Access call :logheader move "%GMSTAND%\server\db\gm.ganzleer.mdb" "%GMSTAND%\server\db\gm.mdb" >nul call "%GMSTAND%\devtools\ccenter\ccenter.bat" "%GMSTAND%\devtools\ccenter\props\access.ini" %TEE% "%GMSTAND%\devtools\ccenter\log\access.log" copy "%GMSTAND%\server\db\gm.mdb" "%GMSTAND%\server\db\gm.leer.mdb" >nul call "%GMSTAND%\devtools\dbloader\dbloader.bat" /Zaehler_FirstList.txt %TEE% "%GMSTAND%\devtools\dbloader\log\access.log" call "%GMSTAND%\devtools\dbloader\dbloader.bat" /InitialList.txt %TEE% "%GMSTAND%\devtools\dbloader\log\access.log" copy "%GMSTAND%\server\db\gm.mdb" "%GMSTAND%\server\db\gm.initialDaten.mdb" >nul call "%GMSTAND%\devtools\dbloader\dbloader.bat" /INT_List.txt %TEE% "%GMSTAND%\devtools\dbloader\log\access.log" copy "%GMSTAND%\server\db\gm.mdb" "%GMSTAND%\server\db\gm.INTDaten.mdb" >nul call "%GMSTAND%\devtools\dbloader\dbloader.bat" /TestList.txt %TEE% "%GMSTAND%\devtools\dbloader\log\access.log" :postdb rmdir /q /s "%GMSTAND%\devtools\ccenter\monitoring" 2>nul if defined AUSLIEFERUNG ( move "%GMSTAND%\devtools\ccenter\log" "%GMSTAND%\log\ccenter" >nul move "%GMSTAND%\devtools\dbloader\log" "%GMSTAND%\log\dbloader" >nul ) echo %STAND%>"%GMSTAND%\VERSION" echo Verwendete A1GSTAND=%A1GSTAND%>>"%GMSTAND%\VERSION" echo Verwendete JDK: %JDK_VERSION%>>"%GMSTAND%\VERSION" echo.>>"%MAILFILE%" echo.>>"%MAILFILE%" echo **************************************************************************** >> "%MAILFILE%" echo Verwendete A1GSTAND=%A1GSTAND%>>"%MAILFILE%" echo Verwendete JDK: %JDK_VERSION%>>"%MAILFILE%" echo Ausgecheckt mit Label: %GETLABEL%>>"%MAILFILE%" echo.>>"%MAILFILE%" set ERRORFILE="%GMSTAND%\FEHLERHAFT!" set GMLOGFILE=%LOGFILE% set LOGFILE=%GMSTAND%\shared\log\mkidl.log call :countall idl set LOGFILE=%GMSTAND%\shared\log\compile.log call :countall shared set LOGFILE=%GMSTAND%\server\log\compile.log call :countall server set LOGFILE=%GMSTAND%\client\log\compile.log call :countall client echo.>> "%MAILFILE%" echo Tools: >> "%MAILFILE%" for /F "delims=" %%i in ('dir /A:D /B /O:N "%GMSTAND%\tools"') do ( set LOGFILE=%GMSTAND%\tools\%%i\log\compile.log call :countall %%i ) if exist "%ERRORFILE%" type "%ERRORFILE%">>"%MAILFILE%" set LOGFILE=%GMLOGFILE% set GMLOGFILE= if defined TESTBAU goto nocopy echo **************************************************************************** >> "%MAILFILE%" set LOGTEXT=Kopiere %GMSTAND% nach %STAND% echo %LOGTEXT%>>"%MAILFILE%" call :logheader if exist "%STAND%" rmdir /q /s "%STAND%" mkdir "%STAND%\gm" %TEE% "%MAILFILE%" xcopy /S /Q /I "%GMSTAND%" "%STAND%\gm" >>"%MAILFILE%" if defined AUSLIEFERUNG ( rmdir /q /s "%STAND%\gm\bin\build" rmdir /q /s "%STAND%\gm\devtools" ) if not defined AUSLIEFERUNG ( del /F "%STAND%\gm\bin\build\standbau.bat" del /F "%STAND%\gm\bin\build\sendmail.java" ) if exist "%STAND%\gm\FEHLERHAFT!" copy "%STAND%\gm\FEHLERHAFT!" "%STAND%" >nul :nocopy echo.>>"%MAILFILE%" echo GM-Standbau beendet>>"%MAILFILE%" date /t >>"%MAILFILE%" time /t >>"%MAILFILE%" set CLASSPATH=%TEMP% "%JAVAHOME%\bin\javac" -d "%CLASSPATH%" "%GMSTAND%\bin\build\sendmail.java" type "%MAILFILE%"|"%JAVAHOME%\bin\javaw" -Dmail.host=%MAILHOST% sendmail "Standbau GM" "%MAILTO%" "%STAND%" del "%CLASSPATH%\sendmail.class" >nul set MAILFILE= set ERRORFILE= set STAND=%STAND%\gm if defined TESTBAU set STAND=%GMSTAND% echo set GMSTAND=%STAND%>"%GMSTAND%\setgmstand.bat" goto ende @rem *************************************************************************************************************************** :countall if not exist "%LOGFILE%" goto :EOF set LOGTEXT=%1: set LASTEXT= set LASTSET= for /F "delims=" %%j in ('find "error" "%LOGFILE%"') do ( set PARAM=%%j call :checklast ) if defined LASTEXT type "%LOGFILE%">>"%ERRORFILE%" if not defined LASTEXT set LASTEXT=no errors set LOGTEXT=%LOGTEXT% %LASTEXT% set LASTEXT= set LASTSET= for /F "delims=" %%j in ('find "warning" "%LOGFILE%"') do ( set PARAM=%%j call :checklast ) if not defined LASTEXT set LASTEXT=no warnings set LOGTEXT=%LOGTEXT%, %LASTEXT% set LASTEXT= set LASTSET= set PARAM= echo %LOGTEXT%>>"%MAILFILE%" goto :EOF :checklast if defined LASTSET set LASTEXT=%PARAM% if not defined LASTSET set LASTSET=1 goto :EOF @rem *************************************************************************************************************************** :getpp set LOGTEXT=Listing %PP% call :logheader "%PVCSBIN%\pcli.exe" lvf -pr"%PVCSPROJECT%" -pp"%PP%" -sp/@/RootWorkspace -z -aw >"%PVCSLIST%" 2>>"%LOGFILE%" if not defined SETLABEL goto checkdirs set LOGTEXT=Labeling %PP% call :logheader set VCSLABEL= if defined GETLABEL set VCSLABEL=:"%GETLABEL%" "%PVCSBIN%\vcs.exe" -v"%SETLABEL%"%VCSLABEL% -q @"%PVCSLIST%" 2>>"%LOGFILE%" set VCSLABEL= :checkdirs set LOGTEXT=Making dirs für %PP% call :logheader for %%i in ("%PVCSLIST%") do set PVCSLIST=%%~sfi for /F "delims=" %%i in (%PVCSLIST%) do ( set FILENAME=%%i call :checkdir ) goto doget :checkdir for /F "delims=() tokens=1,2" %%j in (%FILENAME%) do set DIRNAME=%%~dpk if not exist "%DIRNAME%" mkdir "%DIRNAME%" 2>nul set DIRNAME= set FILENAME= goto :EOF :doget set LOGTEXT=Getting %PP% call :logheader set LABEL=%GETLABEL% if defined SETLABEL set LABEL=%SETLABEL% if defined LABEL set LABEL=-v"%LABEL%" "%PVCSBIN%\get.exe" %LABEL% -w -y @"%PVCSLIST%" 2>>"%LOGFILE%" set LABEL= goto :EOF @rem *************************************************************************************************************************** :logheader call :log ******* %PROJECTNAME% ******** Standbau: %LOGTEXT% for /f "delims=" %%i in ('date /t') do call :log %%i for /f "delims=" %%i in ('time /t') do call :log %%i goto :EOF @rem *************************************************************************************************************************** @rem input: param1=text, NOLOG, LOGLOCAL, TEE, TEEFOUND, LOGFILE @rem output: log :log set LOGTEXT=%1 :lognext shift if "%1"=="" goto logtextok set LOGTEXT=%LOGTEXT% %1 goto lognext :logtextok if defined NOLOG goto loglocal for %%l in ("%LOGFILE%") do mkdir "%%~dpl" 2>nul if not defined TEEFOUND echo %LOGTEXT% >> "%LOGFILE%" echo %LOGTEXT% %TEE% "%LOGFILE%" goto logende :loglocal if not defined LOGLOCAL goto :EOF echo %LOGTEXT% :logende set LOGTEXT= goto :EOF