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

176 lines
5.3 KiB
Batchfile

REM
REM tscwebgen.cmd
REM
REM -Generate msrdp.cab (TS ActiveX web CAB)
REM -Update HTML pages (Tsweb1.htm) with version specific build number for
REM object tag.
REM -Update INF file with build #
REM -Build CAT file for CAB contents
REM -Build CAB file (msrdp.cab)
REM
REM Contact: nadima
REM
REM (need this switch for the BuildNum stuff below to work)
setlocal ENABLEDELAYEDEXPANSION
set GENERATED_WEB_DIR=.\genweb
set TEMP_WEB_DIR=.\tmpweb
if defined ia64 set PLATFORM_STRING=ia64
if defined amd64 set PLATFORM_STRING=amd64
if defined 386 set PLATFORM_STRING=i386
REM deltacat needs a full absolute path!
set DELTA_CAT_DIR=%_NTPOSTBLD%\tsclient\win32\%PLATFORM_STRING%\%TEMP_WEB_DIR%\catfile
REM *****************************************************
REM * Clean out and create temporary and output dirs
REM *****************************************************
REM make tempdirs
if exist %TEMP_WEB_DIR% (
rmdir /q /s %TEMP_WEB_DIR%
if errorlevel 1 call errmsg.cmd "Error deleting tmpweb dir"& goto errend
)
mkdir %TEMP_WEB_DIR%
if errorlevel 1 call errmsg.cmd "err creating %TEMP_WEB_DIR% dir"& goto errend
REM make output dir
if exist %GENERATED_WEB_DIR% (
rmdir /q /s %GENERATED_WEB_DIR%
if errorlevel 1 call errmsg.cmd "Error deleting %GENERATED_WEB_DIR% dir"& goto errend
)
mkdir %GENERATED_WEB_DIR%
if errorlevel 1 call errmsg.cmd "err creating %TEMP_WEB_DIR% dir"& goto errend
REM *****************************************************
REM * Verify source files exist
REM *****************************************************
REM verify source files
if not exist .\tsweb1.htm (
call errmsg.cmd "tsweb1.htm is missing for tscwebgen.cmd"
goto errend
)
if not exist .\msrdp.inf (
call errmsg.cmd "msrdp.inf is missing for tscwebgen.cmd"
goto errend
)
if not exist %_NTPOSTBLD%\msrdp.ocx (
call errmsg.cmd "%_NTPOSTBLD%\msrdp.ocx is missing for tscwebgen.cmd"
goto errend
)
REM rename files
copy .\msrdp.inf %TEMP_WEB_DIR%\msrdp.inf
if errorlevel 1 call errmsg.cmd "err copying files to %TEMP_WEB_DIR%"& goto errend
copy .\tsweb1.htm %TEMP_WEB_DIR%\tsweb1.htm
if errorlevel 1 call errmsg.cmd "err copying files to %TEMP_WEB_DIR%"& goto errend
REM *****************************************************
REM * Update the version in the INF and HTM files
REM *****************************************************
call :SetVersion %TEMP_WEB_DIR%\msrdp.inf
call :SetVersion %TEMP_WEB_DIR%\tsweb1.htm
REM *****************************************************
REM * Create the CAT file
REM *****************************************************
call logmsg.cmd "Building the mstsweb.cat file"
rmdir /q/s %DELTA_CAT_DIR%
mkdir %DELTA_CAT_DIR%
if errorlevel 1 call errmsg.cmd "err creating %DELTA_CAT_DIR% dir"& goto errend
copy %_NTPOSTBLD%\msrdp.ocx %DELTA_CAT_DIR%
copy %TEMP_WEB_DIR%\msrdp.inf %DELTA_CAT_DIR%
call deltacat %DELTA_CAT_DIR%
if not "%errorlevel%" == "0" (
call errmsg.cmd "err creating CAT file"& goto errend
)
copy %DELTA_CAT_DIR%\delta.cat %GENERATED_WEB_DIR%\mstsweb.cat
if errorlevel 1 call errmsg.cmd "err copying delta.cat to mstsweb.cat"& goto errend
REM *****************************************************
REM * Now build the CAB file
REM * Cab contains - generated msrdp.inf
REM * msrdp.ocx
REM *****************************************************
call logmsg.cmd "Building the msrdp.ocx CAB file"
cabarc -s 6144 n %GENERATED_WEB_DIR%\msrdp.cab %_NTPOSTBLD%\msrdp.ocx %TEMP_WEB_DIR%\msrdp.inf
if errorlevel 1 call errmsg.cmd "err building msrdp.cab"& goto errend
REM *****************************************************
REM * Copy up the generated HTM file
REM *****************************************************
copy %TEMP_WEB_DIR%\tsweb1.htm %GENERATED_WEB_DIR%\tsweb1.htm
if errorlevel 1 call errmsg.cmd "err copying tsweb1.htm to generated dir"& goto errend
call logmsg.cmd "tscwebgen.cmd COMPLETED OK!"
REM we're done
endlocal
goto end
REM ******************SUBS START HERE********************
REM *****************************************************
REM * Update version sub *
REM * (updates build version in a file *
REM *****************************************************
:SetVersion
REM
REM Update the build number by replacing '%NTVERSIONSTRING%'
REM with the build number
REM
REM %1 is the file to update
set ntverp=%_NTBINDIR%\public\sdk\inc\ntverp.h
if NOT EXIST %ntverp% (echo Can't find ntverp.h.&goto :ErrEnd)
for /f "tokens=3 delims=, " %%i in ('findstr /c:"#define VER_PRODUCTMAJORVERSION " %ntverp%') do (
set /a ProductMajor="%%i"
set BuildNum=%%i
)
for /f "tokens=3 delims=, " %%i in ('findstr /c:"#define VER_PRODUCTMINORVERSION " %ntverp%') do (
set /a ProductMinor="%%i"
set BuildNum=!BuildNum!,%%i
)
for /f "tokens=6" %%i in ('findstr /c:"#define VER_PRODUCTBUILD " %ntverp%') do (
set /a ProductBuild="%%i"
set BuildNum=!BuildNum!,%%i
)
for /f "tokens=3" %%i in ('findstr /c:"#define VER_PRODUCTBUILD_QFE " %ntverp%') do (
set /a ProductQfe="%%i"
set BuildNum=!BuildNum!,%%i
)
call logmsg.cmd "Updating the %1 ProductVersion to !BuildNum!"
perl -n -p -e "s/\%%NTVERSIONSTRING\%%/$ENV{BuildNum}/i;" %1>%1.tmp
if exist %1.tmp (
copy %1.tmp %1
del %1.tmp
)
if errorlevel 1 call errmsg.cmd "Error calling rep on %1 - !BuildNum!"& goto errend
goto :EOF
:errend
goto :EOF
:end
seterror.exe 0
goto :EOF