Merge pull request #6697 from er1c/6696-killall-runner-command

[#6696] Add shutdownall to sbt runner to shutdown all sbt-launch processes
This commit is contained in:
eugene yokota 2021-10-22 00:06:53 -04:00 committed by GitHub
commit 9e71209cdd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 1 deletions

View File

@ -25,6 +25,7 @@ set default_java_opts=-Dfile.encoding=UTF-8
set sbt_jar=
set build_props_sbt_version=
set run_native_client=
set shutdownall=
set sbt_args_print_version=
set sbt_args_print_sbt_version=
@ -399,6 +400,11 @@ if defined _timings_arg (
goto args_loop
)
if "%~0" == "shutdownall" (
set shutdownall=1
goto args_loop
)
if "%~0" == "--script-version" (
set sbt_args_print_sbt_script_version=1
goto args_loop
@ -508,7 +514,7 @@ goto args_loop
rem Confirm a user's intent if the current directory does not look like an sbt
rem top-level directory and the "new" command was not given.
if not defined sbt_args_sbt_create if not defined sbt_args_print_version if not defined sbt_args_print_sbt_version if not defined sbt_args_print_sbt_script_version if not exist build.sbt (
if not defined sbt_args_sbt_create if not defined sbt_args_print_version if not defined sbt_args_print_sbt_version if not defined sbt_args_print_sbt_script_version if not defined shutdownall if not exist build.sbt (
if not exist project\ (
if not defined sbt_new (
echo [warn] Neither build.sbt nor a 'project' directory in the current directory: "%CD%"
@ -535,6 +541,16 @@ call :process
rem avoid bootstrapping/java version check for script version
if !shutdownall! equ 1 (
set count=0
for /f "tokens=1" %%i in ('jps -lv ^| findstr "xsbt.boot.Boot"') do (
taskkill /F /PID %%i
set /a count=!count!+1
)
echo shutdown !count! sbt processes
goto :eof
)
if !sbt_args_print_sbt_script_version! equ 1 (
echo !init_sbt_version!
goto :eof

9
sbt
View File

@ -10,6 +10,7 @@ declare -a sbt_options
declare -a print_version
declare -a print_sbt_version
declare -a print_sbt_script_version
declare -a shutdownall
declare -a original_args
declare java_cmd=java
declare java_version
@ -494,6 +495,12 @@ run() {
elif [[ $print_version ]]; then
execRunner "$java_cmd" -jar "$sbt_jar" "sbtVersion" | tail -1 | sed -e 's/\[info\]/sbt version in this project:/g'
echo "sbt script version: $init_sbt_version"
elif [[ $shutdownall ]]; then
local sbt_processes=( $(jps -v | grep sbt-launch | cut -f1 -d ' ') )
for procId in "${sbt_processes[@]}"; do
kill -9 $procId
done
echo "shutdown ${#sbt_processes[@]} sbt processes"
else
# run sbt
execRunner "$java_cmd" \
@ -532,6 +539,7 @@ Usage: `basename "$0"` [options]
-V | --version print sbt version information
--numeric-version print the numeric sbt version (sbt sbtVersion)
--script-version print the version of sbt script
shutdownall shutdown all running sbt-launch processes
-d | --debug set sbt log level to debug
-debug-inc | --debug-inc
enable extra debugging for the incremental debugger
@ -647,6 +655,7 @@ process_args () {
-V|-version|--version) print_version=1 && shift ;;
--numeric-version) print_sbt_version=1 && shift ;;
--script-version) print_sbt_script_version=1 && shift ;;
shutdownall) shutdownall=1 && shift ;;
-d|-debug|--debug) sbt_debug=1 && addSbt "-debug" && shift ;;
-client|--client) use_sbtn=1 && shift ;;
--server) use_sbtn=0 && shift ;;