Windows2003-3790/tools/postbuildscripts/winfuse_combinelogs.cmd
2020-09-30 16:53:55 +02:00

111 lines
4.1 KiB
Batchfile

@REM -----------------------------------------------------------------
@REM
@REM winfuse_combinelogs.cmd - sxscore
@REM Combines logs produced during the build and consumed in postbuild.
@REM They need to be combined to account for distributed builds.
@REM
@REM Copyright (c) Microsoft Corporation. All rights reserved.
@REM
@REM -----------------------------------------------------------------
@if defined _CPCMAGIC goto CPCBegin
@perl -x "%~f0" %*
@goto :EOF
#!perl
use strict;
use lib $ENV{RAZZLETOOLPATH} . "\\PostBuildScripts";
use lib $ENV{RAZZLETOOLPATH};
use PbuildEnv;
use ParseArgs;
sub Usage { print<<USAGE; exit(1) }
winfuse_combinelogs
Combines logs produced during the build and consumed in postbuild.
They need to be combined to account for distributed builds.
-? this message
USAGE
parseargs('?' => \&Usage );
# *** TEMPLATE CODE ***
$ENV{"_CPCMAGIC"}++;exit(system($0)>>8);
__END__
@:CPCBegin
@set _CPCMAGIC=
@setlocal ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
@if not defined DEBUG echo off
@REM *** CMD SCRIPT BELOW ***
if /i not "%lang%"=="usa" (goto End)
set SXS_BINPLACE_LOG=%_NtPostBld%\build_logs\binplace*.log-sxs
set SXS_BINPLACE_FINAL_LOG=%_NtPostBld%\build_logs\sxs-binplaced-assemblies.log
del %SXS_BINPLACE_FINAL_LOG%
REM
REM Combine the files from each chunk of the distributed build into one file.
REM and sort.exe|unique.exe them, and put the header on that the prs signing tools DEPEND on,
REM and pretty print the content as readable columns.
REM
set in=%_ntpostbld%\build_logs\fusionlist*.txt
set out1=%_ntpostbld%\build_logs\combined_fusionlist_temp1.txt
set out2=%_ntpostbld%\build_logs\combined_fusionlist_temp2.txt
set out3=%_ntpostbld%\build_logs\combined_fusionlist_temp3.txt
set out4=%_ntpostbld%\build_logs\combined_fusionlist_temp4.txt
set out5=%_ntpostbld%\build_logs\combined_fusionlist_temp5.txt
set out=%_ntpostbld%\build_logs\combined_fusionlist.txt
del %out% %out1% %out2% %out3% %out4% %out5%
echo>>%out% ;"%in% produced by SXS_LOG in makefile.def"
echo>>%out% ;"then %in% processed by findstr.exe | columns.exe | sort.exe | unique.exe | uniquizefusioncatalognames in %0 to produce %out%"
echo>>%out% ;Filename ValidLangs Exceptions ValidArchs ValidDebug AltName
echo>>%out% ;==================================================================================================================
call logmsg.cmd "start findstr.exe | columns.exe | sort.exe | unique.exe"
echo on
for %%i in (%in%) do findstr.exe /b /v /c:; < %%i >> %out1%
REM lowercase it all
REM change runs of spaces to a single space
REM remove spaces at ends of lines
perl.exe -p -e "lc; s/ +/ /g; s/ +$//g; tr/A-Z/a-z/;" < %out1% > %out2%
columns.exe < %out2% > %out3%
sort.exe < %out3% > %out4%
unique.exe < %out4% > %out5%
uniquizefusioncatalognames.exe %out5% >> %out%
call logmsg.cmd "end findstr.exe | columns.exe | sort.exe | unique.exe"
set d1=%_NtPostBld%\build_logs
set d2=%_NtPostBld%\symbolcd\cablists
mkdir %d2%
set in=%d1%\symbolcd_cablists_asms_*.lst
set out=%d2%\asms.lst
set out1=%d1%\symbolcd_cablists_asms_temp1.txt
set out2=%d1%\symbolcd_cablists_asms_temp2.txt
set out3=%d1%\symbolcd_cablists_asms_temp3.txt
del %out% %out1% %out2% %out3%
copy %in% %out1%
REM lowercase it all; change runs of spaces to a single space; remove spaces at ends of lines
perl.exe -p -e "lc; s/ +/ /g; s/ +$//g; tr/A-Z/a-z/;" < %out1% > %out2%
sort.exe < %out2% > %out3%
unique.exe < %out3% > %out%
REM -------
REM Generate the overall log of all the legal sxs assemblies that were
REM either built or copied from the buildlab into
REM %_NtPostBld%\build_logs\sxs-binplaced-assemblies.log
REM
REM We'll use this file as the one that we run the buildtool over, and
REM it'll act as the master list of assemblies that should be on the
REM release share after the buildtool step.
REM -------
REM The nice thing about this is that copy is smart about appending stuff into
REM one big file.
REM -------
copy %SXS_BINPLACE_LOG% %SXS_BINPLACE_FINAL_LOG%
goto :Eof