Merge pull request #305 from er1c/sbt-jar-win

Add --sbt-jar test and windows sbt.bat support
This commit is contained in:
eugene yokota 2019-10-20 09:56:13 -04:00 committed by GitHub
commit 9f9dd66336
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 48 additions and 8 deletions

View File

@ -111,7 +111,7 @@ object SbtRunnerTest extends SimpleTestSuite with PowerAssertions {
test("sbt -V|-version|--version should print sbtVersion") {
val out = sbtProcessWithOpts("-version", "", "").!!.trim
val expectedVersion =
s"""|(?m)^sbt version in this project: $versionRegEx
s"""|(?m)^sbt version in this project: $versionRegEx(\\r)?
|sbt script version: $versionRegEx$$
|""".stripMargin.trim.replace("\n", "\\n")
assert(out.matches(expectedVersion))
@ -137,4 +137,12 @@ object SbtRunnerTest extends SimpleTestSuite with PowerAssertions {
assert(out.matches(expectedVersion))
()
}
test("sbt --sbt-jar should run") {
val out = sbtProcess("compile -v --sbt-jar ../target/universal/stage/bin/sbt-launch.jar").!!.linesIterator.toList
assert(out.contains[String]("../target/universal/stage/bin/sbt-launch.jar") ||
out.contains[String]("\"../target/universal/stage/bin/sbt-launch.jar\"")
)
()
}
}

View File

@ -22,6 +22,7 @@ set init_sbt_version=_to_be_replaced
set sbt_default_mem=1024
set default_sbt_opts=
set default_java_opts=-Dfile.encoding=UTF-8
set sbt_jar=
set sbt_args_print_version=
set sbt_args_print_sbt_version=
@ -34,6 +35,7 @@ set sbt_args_color=
set sbt_args_no_colors=
set sbt_args_no_global=
set sbt_args_no_share=
set sbt_args_sbt_jar=
set sbt_args_ivy=
set sbt_args_supershell=
set sbt_args_timings=
@ -214,6 +216,26 @@ if defined _sbt_boot_arg (
)
)
if "%~0" == "-sbt-jar" set _sbt_jar=true
if "%~0" == "--sbt-jar" set _sbt_jar=true
if defined _sbt_jar (
set _sbt_jar=
if not "%~1" == "" (
if exist "%~1" (
set sbt_args_sbt_jar=%1
shift
goto args_loop
) else (
echo %~1 does not exist
goto error
)
) else (
echo "%~0" is missing a value
goto error
)
)
if "%~0" == "-ivy" set _sbt_ivy_arg=true
if "%~0" == "--ivy" set _sbt_ivy_arg=true
@ -509,6 +531,14 @@ if defined sbt_args_traces (
set _SBT_OPTS=-Dsbt.traces=true !_SBT_OPTS!
)
if defined sbt_args_sbt_jar (
set "sbt_jar=!sbt_args_sbt_jar!"
) else (
set "sbt_jar=!SBT_HOME!\bin\sbt-launch.jar"
)
set sbt_jar=!sbt_jar:"=!
rem TODO: _SBT_OPTS needs to be processed as args and diffed against SBT_ARGS
if !sbt_args_print_sbt_script_version! equ 1 (
@ -534,12 +564,14 @@ if defined sbt_args_verbose (
echo "!_JAVACMD!"
if defined _JAVA_OPTS ( call :echolist !_JAVA_OPTS! )
if defined _SBT_OPTS ( call :echolist !_SBT_OPTS! )
echo -cp "!SBT_HOME!\bin\sbt-launch.jar" xsbt.boot.Boot
echo -cp
echo "!sbt_jar!"
echo xsbt.boot.Boot
if not [%~1] == [] ( call :echolist %* )
echo.
)
"!_JAVACMD!" !_JAVA_OPTS! !_SBT_OPTS! -cp "!SBT_HOME!\bin\sbt-launch.jar" xsbt.boot.Boot %*
"!_JAVACMD!" !_JAVA_OPTS! !_SBT_OPTS! -cp "!sbt_jar!" xsbt.boot.Boot %*
goto :eof
@ -694,11 +726,11 @@ exit /B 1
:copyrt
if /I !JAVA_VERSION! GEQ 9 (
set rtexport=!SBT_BIN_DIR!java9-rt-export.jar
set "rtexport=!SBT_BIN_DIR!java9-rt-export.jar"
"!_JAVACMD!" !_JAVA_OPTS! !_SBT_OPTS! -jar "!rtexport!" --rt-ext-dir > "%TEMP%.\rtext.txt"
set /p java9_ext= < "%TEMP%.\rtext.txt"
set java9_rt=!java9_ext!\rt.jar
set "java9_rt=!java9_ext!\rt.jar"
if not exist "!java9_rt!" (
mkdir "!java9_ext!"
@ -765,7 +797,7 @@ rem echo --batch disable interactive mode
echo.
echo # sbt version ^(default: from project/build.properties if present, else latest release^)
echo --sbt-version ^<version^> use the specified version of sbt
rem echo --sbt-jar ^<path^> use the specified jar as the sbt launcher
echo --sbt-jar ^<path^> use the specified jar as the sbt launcher
echo.
echo # java version ^(default: java from PATH, currently !FULL_JAVA_VERSION!^)
echo --java-home ^<path^> alternate JAVA_HOME
@ -792,8 +824,8 @@ echo.
exit /B 1
:set_sbt_version
rem print sbtVersion
for /F "usebackq tokens=2" %%G in (`CALL "!_JAVACMD!" -jar "!SBT_HOME!\bin\sbt-launch.jar" "sbtVersion" 2^>^&1`) do set "sbt_version=%%G"
rem set project sbtVersion
for /F "usebackq tokens=2" %%G in (`CALL "!_JAVACMD!" -jar "!sbt_jar!" "sbtVersion" 2^>^&1`) do set "sbt_version=%%G"
exit /B 0
:error