windows-nt/Source/XPSP1/NT/tools/postbuildscripts/fullsync.cmd
2020-09-26 16:20:57 +08:00

84 lines
2 KiB
Batchfile

@REM standard cmd script header lines ...
@echo off
setlocal EnableDelayedExpansion
REM
REM fullsync.cmd
REM
REM this script will kick off a parallel sync in all projects
REM
REM set up local vars
set /a ExitCode=0
set LogFile=%SDXROOT%\fullsync.err
REM make sure we know where we are
if not defined SDXROOT (
echo SDXROOT is not defined, exiting.
set /a ExitCode=!ExitCode! + 1
goto :ErrEnd
)
REM clear the error log if any
if exist %LogFile% del %LogFile%
REM the dot in ProjectList is for the root depot
REM set ProjectList=. admin base com drivers ds enduser inetcore inetsrv multimedia net printscan sdktools shell termsrv windows
REM generate the project list from sd.map
set ReadFlag=FALSE
set ProjectList=
for /f "tokens=1,2 delims==" %%a in (%SDXROOT%\sd.map) do (
set TokenOne=%%a
set TokenTwo=%%b
set TokenOne=!TokenOne: =!
set TokenTwo=!TokenTwo: =!
if /i "!TokenOne!" == "DEPOTS" set ReadFlag=FALSE
if "!TokenOne!" NEQ "#" (
if "!TokenTwo!" NEQ "" (
if "!ReadFlag!" == "TRUE" (
if defined ProjectList (set ProjectList=!ProjectList! !TokenOne!-!TokenTwo!) else (set ProjectList=!TokenOne!-!TokenTwo!)
)
)
)
if /i "!TokenOne!" == "CLIENT" set ReadFlag=TRUE
)
set WaitList=
for %%a in (%ProjectList%) do (
for /f "tokens=1,2 delims=-" %%b in ('echo %%a') do (
if "%%c" NEQ "" (
pushd %SDXROOT%\%%c
start "%%b syncing" /MIN cmd /c %RazzleToolPath%\PostBuildScripts\syncone.cmd %%c
if defined WaitList (set WaitList=!WaitList! syncwait.%%c) else (set WaitList=syncwait.%%c)
popd
)
)
)
set waitlist=%waitlist:\=-%
perl %RazzleToolPath%\PostBuildScripts\cmdevt.pl -wv %WaitList%
echo.
if exist %LogFile% (
echo Errors encountered:
echo see %LogFile% for details.
set /a ExitCode=!ExitCode! + 1
goto :ErrEnd
)
echo No errors encountered.
goto :End
:End
endlocal
goto :EOF
:ErrEnd
echo Finished with %ExitCode% error(s).
call :End
seterror.exe 1