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

130 lines
2.9 KiB
Batchfile

@echo off
setlocal EnableDelayedExpansion
REM
REM moveqfe.cmd
REM
REM moveqfe.cmd [-n:BugID] [-b:binary name]
REM
REM first, parse command line
set BugID=
set BinaryName=
set PickupShare=\\2kbldx2\QFEPickup
:SwitchLoop
for %%a in (./ .- .) do if ".%1." == "%%a?." goto :Usage
if "%1" == "" goto :EndSwitchLoop
for /f "tokens=1* delims=:" %%a in ('echo %1') do (
set Switch=%%a
set Arg=%%b
for %%c in (./ .-) do (
if ".!Switch!." == "%%cn." (set BugID=!Arg!&&goto :ShiftArg)
if ".!Switch!." == "%%cb." (set BinaryName=!Arg!&&goto :ShiftArg)
)
REM if we're here, we didn't encounter any switches and thus we have
REM an unrecognized argument
goto :Usage
)
:ShiftArg
shift
goto :SwitchLoop
:EndSwitchLoop
REM validate args
if not defined BugID (
echo Must supply a Bug number for this fix
goto :Usage
)
if not defined BinaryName (
echo Must supply a binary name to copy
goto :Usage
)
if not exist %PickupShare% (
echo Pickup share %PickupShare% does not exist, exiting.
goto :Usage
)
REM make sure we can find the binaries
set BinLoc=%_NTPOSTBLD%\%BinaryName%
if not exist %BinLoc% (
echo Could not find %BinLoc% ... not copying
goto :End
)
REM find the extension to look for the symbols under, and rip off the dot
for %%a in (%BinLoc%) do (
set BinExtension=%%~xa
set BinNameOnly=%%~na
)
set BinExtension=%BinExtension:~1%
set SymLoc=%_NTPOSTBLD%\symbols\retail\%BinExtension%\%BinNameOnly%.pdb
if not exist %SymLoc% (
echo Could not find %SymLoc% ... not copying
goto :End
)
set PriLoc=%_NTPOSTBLD%\symbols.pri\retail\%BinExtension%\%BinNameOnly%.pdb
if not exist %PriLoc% (
echo Could not find %PriLoc% ... not copying
goto :End
)
REM make our directory on the pickup share
set BinDropPoint=%PickupShare%\%BugID%\%_BuildArch%%_BuildType%\bin
set SymDropPoint=%PickupShare%\%BugID%\%_BuildArch%%_BuildType%\sym
set PriDropPoint=%PickupShare%\%BugID%\%_BuildArch%%_BuildType%\pri
for %%a in (%BinDropPoint% %SymDropPoint% %PriDropPoint%) do (
if not exist %%a (
echo Creating binary drop point ...
md %%a
if !ErrorLevel! NEQ 0 (
echo Failed to create %%a ... not copying
goto :End
)
)
)
REM copy the requested bin and sym
copy %BinLoc% %BinDropPoint% >nul 2>nul
if %ErrorLevel% NEQ 0 (
echo copy of binary failed, not copying symbol ...
goto :End
)
copy %SymLoc% %SymDropPoint% >nul 2>nul
if %ErrorLevel% NEQ 0 (
echo copy of symbol failed, advise a retry ...
goto :End
)
copy %PriLoc% %PriDropPoint% >nul 2>nul
if %ErrorLevel% NEQ 0 (
echo copy of private symbol failed, advise a retry ...
goto :End
)
echo Binary copied to %BinDropPoint%
echo Symbol copied to %SymDropPoint%
echo Private symbol copied to %PriDropPoint%
goto :End
:Usage
echo.
echo moveqfe.cmd [-n:BugID] [-b:binary name]
echo.
echo this script will copy a binary and it's symbol to %PickupShare%
echo under a path with the bug number and archtype in the path.
echo.
goto :End
:End
endlocal