| @echo off |
| setlocal EnableDelayedExpansion |
| |
| set "TOOL_NAME={TOOL_NAME}" |
| set "TOOL_FILENAME={TOOL_FILENAME}" |
| set "TOOL_SHORT_PATH={TOOL_SHORT_PATH}" |
| |
| REM When runfiles are enabled, the tool is available through its short path. |
| set "tool_path=%TOOL_SHORT_PATH:/=\%" |
| for %%I in ("!tool_path!") do set "tool_path=%%~fI" |
| |
| REM Otherwise, locate the tool through the runfiles manifest. |
| if not exist "!tool_path!" ( |
| set "manifest_path=%RUNFILES_MANIFEST_FILE%" |
| if defined manifest_path if not exist "!manifest_path!" set "manifest_path=" |
| if not defined manifest_path if exist "%~f0.runfiles_manifest" set "manifest_path=%~f0.runfiles_manifest" |
| if not defined manifest_path if exist "%~f0.exe.runfiles_manifest" set "manifest_path=%~f0.exe.runfiles_manifest" |
| if not defined manifest_path if exist "MANIFEST" set "manifest_path=MANIFEST" |
| if not defined manifest_path if exist "..\MANIFEST" set "manifest_path=..\MANIFEST" |
| |
| if defined manifest_path ( |
| for /F "tokens=1,* delims= " %%F IN ('findstr /l /c:"!TOOL_FILENAME!" "!manifest_path!"') DO ( |
| set "tool_path=%%G" |
| ) |
| ) |
| ) |
| |
| if not exist "!tool_path!" ( |
| echo Unable to locate !TOOL_NAME! runfile: !TOOL_SHORT_PATH! 1>&2 |
| exit /b 1 |
| ) |
| |
| set "working_directory=%BUILD_WORKSPACE_DIRECTORY%" |
| if defined BUILD_WORKING_DIRECTORY set "working_directory=%BUILD_WORKING_DIRECTORY%" |
| if defined working_directory ( |
| cd /d "!working_directory!" |
| if errorlevel 1 ( |
| echo Unable to change working directory: !working_directory! 1>&2 |
| exit /b 1 |
| ) |
| ) |
| |
| "!tool_path!" %* |
| exit /b !ERRORLEVEL! |