-
Notifications
You must be signed in to change notification settings - Fork 5
/
scala.bat
121 lines (106 loc) · 3.61 KB
/
scala.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
@echo off
setlocal enabledelayedexpansion
@rem #########################################################################
@rem ## Environment setup
set _EXITCODE=0
set "_PROG_HOME=%~dp0"
call "%_PROG_HOME%\common.bat"
if not %_EXITCODE%==0 goto end
call :args %*
@rem #########################################################################
@rem ## Main
set _CASE_REPL=0
if %_EXECUTE_REPL%==1 set _CASE_REPL=1
if %_EXECUTE_RUN%==0 if %_OPTIONS_INDICATOR%==0 set _CASE_REPL=1
set _CASE_EXEC=0
if %_EXECUTE_REPL%==1 set _CASE_EXEC=1
if defined _RESIDUAL_ARGS set _CASE_EXEC=1
if %_EXECUTE_SCRIPT%==1 (
set _SCALAC_ARGS=
if defined _CLASS_PATH set _SCALAC_ARGS=-classpath "%_CLASS_PATH%"
set _RESIDUAL_ARGS=!_RESIDUAL_ARGS! "-Dscript.path=%_TARGET_SCRIPT%"
set _SCALAC_ARGS=!_SCALAC_ARGS! %_JAVA_OPTS% !_RESIDUAL_ARGS! -script "%_TARGET_SCRIPT%" %_SCRIPT_ARGS%
call "%_PROG_HOME%\scalac.bat" !_SCALAC_ARGS!
if not !ERRORLEVEL!==0 ( set _EXITCODE=1& goto end )
@rem if [ $execute_repl == true ] || ([ $execute_run == false ] && [ $options_indicator == 0 ]); then
) else if %_CASE_REPL%==1 (
set _SCALAC_ARGS=
if defined _CLASS_PATH set _SCALAC_ARGS=-classpath "%_CLASS_PATH%"
set _SCALAC_ARGS=!_SCALAC_ARGS! %_JAVA_OPTS% -repl %_RESIDUAL_ARGS%
call "%_PROG_HOME%\scalac.bat" !_SCALAC_ARGS!
if not !ERRORLEVEL!==0 ( set _EXITCODE=1& goto end )
@rem elif [ $execute_repl == true ] || [ ${#residual_args[@]} -ne 0 ]; then
) else if %_CASE_EXEC%==1 (
set "_CP_ARG=%_SCALA3_LIB%%_PSEP%%_SCALA_LIB%"
if defined _CLASS_PATH ( set "_CP_ARG=!_CP_ARG!%_PSEP%%_CLASS_PATH%"
) else ( set "_CP_ARG=!_CP_ARG!%_PSEP%."
)
if %_CLASS_PATH_COUNT% gtr 1 (
echo Warning: Multiple classpaths are found, scala only use the last one. 1>&2
)
if %_WITH_COMPILER%==1 (
set "_CP_ARG=!_CP_ARG!%_PSEP%%_SCALA3_COMP%%_PSEP%%_TASTY_CORE%%_PSEP%%_SCALA3_INTF%%_PSEP%%_SCALA_ASM%%_PSEP%%_SCALA3_STAGING%%_PSEP%%_SCALA3_TASTY_INSPECTOR%"
)
set _JAVA_ARGS=-classpath "!_CP_ARG!" %_JVM_OPTS% %_RESIDUAL_ARGS%
call "%_JAVACMD%" !_JAVA_ARGS!
if not !ERRORLEVEL!==0 ( set _EXITCODE=1& goto end )
) else (
echo Warning: Command option is not correct. 1>&2
)
goto end
@rem #########################################################################
@rem ## Subroutines
:args
set _RESIDUAL_ARGS=
set _SCRIPT_ARGS=
set _EXECUTE_REPL=0
set _EXECUTE_RUN=0
set _EXECUTE_SCRIPT=0
set _TARGET_SCRIPT=
set _WITH_COMPILER=0
set _CLASS_PATH_COUNT=0
set _CLASS_PATH=
set _JVM_OPTS=
set _JAVA_OPTS=
set _OPTIONS_INDICATOR=0
:args_loop
if "%~1"=="" goto args_done
set "__ARG=%~1"
if "%__ARG%"=="-repl" (
set _EXECUTE_REPL=1
) else if "%__ARG%"=="-run" (
set _EXECUTE_RUN=1
) else if "%__ARG%"=="-classpath" (
set "_CLASS_PATH=%~2"
set /a _CLASS_PATH_COUNT+=1
shift
) else if "%__ARG%"=="-cp" (
set "_CLASS_PATH=%~2"
set /a _CLASS_PATH_COUNT+=1
shift
) else if "%__ARG%"=="-with-compiler" (
set _WITH_COMPILER=1
) else if "%__ARG:~0,2%"=="-J" (
set _JVM_OPTS=!_JVM_OPTS! %__ARG:~2%
set _JAVA_OPTS=!_JAVA_OPTS! %__ARG%
) else (
@rem _OPTIONS_INDICATOR != 0 if at least one parameter is not an option
if not "%__ARG:~0,1%"=="-" set /a _OPTIONS_INDICATOR+=1
if %_EXECUTE_SCRIPT%==1 (
set _SCRIPT_ARGS=%_SCRIPT_ARGS% %__ARG%
) else if "%__ARG:~-6%"==".scala" (
set _EXECUTE_SCRIPT=1
set "_TARGET_SCRIPT=%__ARG%"
) else (
set _RESIDUAL_ARGS=%_RESIDUAL_ARGS% %__ARG%
)
)
shift
goto args_loop
:args_done
goto :eof
@rem #########################################################################
@rem ## Cleanups
:end
exit /b %_EXITCODE%
endlocal