| @echo off |
| setlocal enabledelayedexpansion |
| |
| REM Check if an argument was provided |
| if "%~1"=="" ( |
| echo Usage: %~nx0 ^<path^> >&2 |
| exit /b 1 |
| ) |
| |
| REM Get the input path and convert to absolute path |
| set "input_path=%~f1" |
| |
| REM Check if the path contains "bazel-out" |
| echo !input_path! | findstr /C:"bazel-out" >nul |
| if errorlevel 1 ( |
| echo Error: Path does not contain 'bazel-out' >&2 |
| exit /b 1 |
| ) |
| |
| REM Extract everything from "bazel-out" onwards |
| for /f "tokens=1,* delims==" %%a in ("!input_path:bazel-out=^=bazel-out!") do ( |
| set "result=%%b" |
| ) |
| |
| REM Strip .runfiles wrapper path if present to get actual binary |
| REM bazel-out\...\bin\foo\bar.runfiles\_main\foo\bar -> bazel-out\...\bin\foo\bar |
| echo !result! | findstr /C:".runfiles\" >nul |
| if not errorlevel 1 ( |
| for /f "tokens=1 delims=." %%a in ("!result:.runfiles=^.runfiles!") do ( |
| set "result=%%a" |
| ) |
| ) |
| |
| echo !result! 1>&2 |
| endlocal |