Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

189 lines
4.2 KiB

@REM -----------------------------------------------------------------
@REM
@REM supporttools.cmd - ClarkG
@REM create the suppport tools cab
@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) }
supporttools [-l <language>]
Create the support tools cab.
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 ***
REM
REM Check for the working folder
REM
if NOT EXIST %_NTPostBld%\dump\supporttools (
call errmsg.cmd "%_NTPostBld%\dump\supporttools does not exist; unable to create support.cab."
goto end
)
cd /d %_NTPostBld%\dump\supporttools
if errorlevel 1 (
goto end
)
REM
REM Support Tools: check whether the ddf is there
REM
if NOT exist suptools.ddf (
call errmsg.cmd "Unable to find suptools.ddf."
goto end
)
REM
REM Support Tools: Generate the suppport.cab cabinet
REM
if exist support.cab call ExecuteCmd.cmd "del /f support.cab"
if errorlevel 1 (
call errmsg.cmd "Error deleting old support.cab."
goto end
)
call ExecuteCmd.cmd "makecab /D SourceDir=%_NTPOSTBLD% /F suptools.ddf"
if errorlevel 1 (
call errmsg.cmd "Error generating support.cab."
goto end
)
REM
REM Support Tools: check whether the msi database is there for the updating
REM
if NOT exist suptools.msi (
call errmsg.cmd "Unable to find suptools.msi."
goto end
)
REM
REM Support Tools: check whether WiStream.vbs is present
REM
if NOT exist WiStream.vbs (
call errmsg.cmd "Unable to find WiStream.vbs ."
goto end
)
REM
REM Support Tools: check whether the CA dll is present
REM
if NOT exist %_NTPostBld%\reskit\bin\suptools.dll (
call errmsg.cmd "Unable to find suptools.dll ."
goto end
)
REM
REM Support Tools: Stream the Suptools.dll into the Binary table
REM
call ExecuteCmd.cmd "WiStream.vbs suptools.msi %_NTPostBld%\reskit\bin\suptools.dll Binary.SupToolsDll"
if errorlevel 1 (
call errmsg.cmd "Error updating Binary table."
goto end
)
REM
REM SetBldno
REM
set ntverp=%_ntbindir%\public\sdk\inc\ntverp.h
if not exist %ntverp% (
call errmsg.cmd "File %ntverp% not found."
goto end
)
set bldno=
for /f "tokens=6" %%i in ('findstr /c:"#define VER_PRODUCTBUILD " %ntverp%') do (
set bldno=%%i
)
if "%bldno%" == "" (
call errmsg.cmd "Unable to define bldno per %ntverp%"
goto end
)
REM
REM Update the 'ProductVersion' property in the msi with the current build
REM
call ExecuteCmd.cmd "cscript.exe updversn.vbs suptools.msi %bldno%"
if errorlevel 1 (
call errmsg.cmd "Error updating Property table."
goto end
)
REM
REM Support Tools: create a 'cabtemp' folder to extract the cab files.
REM
call ExecuteCmd.cmd "if not exist cabtemp md cabtemp"
if errorlevel 1 (
goto end
)
REM
REM Support Tools: check whether the cab is present.
REM
if NOT exist support.cab (
call errmsg.cmd "Unable to find support.cab."
goto end
)
REM
REM Support Tools: extract the cabs
REM
call ExecuteCmd.cmd "extract.exe /y /e /l cabtemp support.cab"
if errorlevel 1 (
goto end
)
REM
REM Support Tools: Use msifiler to update the msi database with the cab contents.
REM
call ExecuteCmd.cmd "msifiler.exe -d suptools.msi -s cabtemp\"
if errorlevel 1 (
popd
goto end
)
REM
REM Support Tools: Remove the cabtemp folder as it is not needed.
REM
call ExecuteCmd.cmd "rd /q /s cabtemp"
REM
REM Copy msi to destination
REM
call ExecuteCmd.cmd "copy /Y suptools.msi %_NTPostBld%\support\tools\"
if errorlevel 1 (
goto end
)
call ExecuteCmd.cmd "copy /Y support.cab %_NTPostBld%\support\tools\"
if errorlevel 1 (
goto end
)
call logmsg.cmd "Whistler Support Tools Cabgen completed successfully."
popd
goto end
:end
seterror.exe "%errors%"& goto :EOF