mirror of https://github.com/sbt/sbt.git
[2.x] fix: Parse sbtVersion robustly in sbt.bat (sbt#8717)
**Problem** Windows batch parsing for `sbtVersion` used a fragile token extraction that could capture non-version tokens from noisy output. **Solution** Updated `:set_sbt_version` to select and validate version-shaped tokens and fallback to `build_props_sbt_version` when parsing is noisy.
This commit is contained in:
parent
3f95842fd8
commit
28fbfbeff0
|
|
@ -1122,8 +1122,16 @@ echo.
|
|||
exit /B 1
|
||||
|
||||
:set_sbt_version
|
||||
rem set project sbtVersion
|
||||
for /F "usebackq tokens=2" %%G in (`CALL "!_JAVACMD!" -jar "!sbt_jar!" "sbtVersion" 2^>^&1`) do set "sbt_version=%%G"
|
||||
set "sbt_version="
|
||||
for /F "usebackq tokens=1,2 delims= " %%a in (`CALL "!_JAVACMD!" -jar "!sbt_jar!" "sbtVersion" 2^>^&1`) do (
|
||||
if "%%a" == "[info]" (
|
||||
set "_version_candidate=%%b"
|
||||
) else (
|
||||
set "_version_candidate=%%a"
|
||||
)
|
||||
echo !_version_candidate!| findstr /R "^[0-9][0-9.]*[-+0-9A-Za-z._]*$" >nul && set "sbt_version=!_version_candidate!"
|
||||
)
|
||||
if not defined sbt_version if defined build_props_sbt_version set "sbt_version=!build_props_sbt_version!"
|
||||
exit /B 0
|
||||
|
||||
:error
|
||||
|
|
|
|||
Loading…
Reference in New Issue