Skip to content

Commit 8aef533

Browse files
committed
JRUBY-884: -J option processing for jruby scripts and batch files
git-svn-id: http://svn.codehaus.org/jruby/trunk/jruby@3678 961051c9-f516-0410-bf72-c9f7e237a7b7
1 parent 360ef20 commit 8aef533

12 files changed

Lines changed: 76 additions & 22 deletions

bin/_jrubycleanup.bat

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,6 @@ set _RUNJAVA=
1616
set _STARTJAVA=
1717
set _JAVA_COMMAND=
1818
set _VM_OPTS=
19+
set _RUBY_OPTS=
1920
:finish
2021
exit /b %E%

bin/_jrubyvars.bat

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ rem set _STARTJAVA=start "%JAVA_HOME%\bin\java"
5353
set _STARTJAVA="%JAVA_HOME%\bin\%JAVA_COMMAND%"
5454
:gotTitle
5555

56-
set _VM_OPTS=-Xmx256m -Xss1024k -Xverify:none -da
56+
rem ----- Set up the VM options
57+
call "%~dp0_jrubyvmopts" %*
5758
set _RUNJAVA="%JAVA_HOME%\bin\java"
5859

5960
rem ----- Set Up The Runtime Classpath ----------------------------------------

bin/_jrubyvmopts.bat

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
@echo off
2+
set _MEM=-Xmx256m
3+
set _STK=-Xss1024k
4+
set _VM_OPTS=
5+
set _RUBY_OPTS=
6+
7+
:vmoptsLoop
8+
set _ARG=%1
9+
set _CMP=
10+
rem remove surrounding quotes
11+
for %%i in (%_ARG%) do set _CMP=%%~i
12+
if "%_CMP%" == "" goto vmoptsDone
13+
14+
if not "%_CMP:~0,2%" == "-J" (
15+
set _RUBY_OPTS=%_RUBY_OPTS% %_ARG%
16+
goto vmoptsNext
17+
)
18+
set _VAL=%_ARG:~2%
19+
if "%_VAL:~0,4%" == "-Xmx" (
20+
set _MEM=%_VAL%
21+
goto vmoptsNext
22+
)
23+
if "%_VAL:~0,4%" == "-Xss" (
24+
set _STK=%_VAL%
25+
goto vmoptsNext
26+
)
27+
set _VM_OPTS=%_VM_OPTS% %_VAL%
28+
29+
:vmoptsNext
30+
shift
31+
goto vmoptsLoop
32+
33+
:vmoptsDone
34+
set _VM_OPTS=%_VM_OPTS% %_MEM% %_STK% -Xverify:none -da
35+
set _MEM=
36+
set _STK=
37+
set _ARG=
38+
set _VAL=
39+
set _CMP=

bin/gem.bat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
@echo off
22
rem ---------------------------------------------------------------------------
33

4-
call "%~dp0_jrubyvars"
4+
call "%~dp0_jrubyvars" %*
55

6-
%_STARTJAVA% %_VM_OPTS% -cp "%CLASSPATH%" -Djruby.base="%JRUBY_BASE%" -Djruby.home="%JRUBY_HOME%" -Djruby.lib="%JRUBY_HOME%\lib" -Djruby.shell="cmd.exe" -Djruby.script=jruby.bat org.jruby.Main %JRUBY_OPTS% "%JRUBY_HOME%\bin\gem" %*
6+
%_STARTJAVA% %_VM_OPTS% -cp "%CLASSPATH%" -Djruby.base="%JRUBY_BASE%" -Djruby.home="%JRUBY_HOME%" -Djruby.lib="%JRUBY_HOME%\lib" -Djruby.shell="cmd.exe" -Djruby.script=jruby.bat org.jruby.Main %JRUBY_OPTS% "%JRUBY_HOME%\bin\gem" %_RUBY_OPTS%
77
set E=%ERRORLEVEL%
88

99
call "%~dp0_jrubycleanup"

bin/gem_mirror.bat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
@echo off
22
rem ---------------------------------------------------------------------------
3-
call "%~dp0_jrubyvars"
3+
call "%~dp0_jrubyvars" %*
44

5-
%_STARTJAVA% %_VM_OPTS% -cp "%CLASSPATH%" -Djruby.base="%JRUBY_BASE%" -Djruby.home="%JRUBY_HOME%" -Djruby.lib="%JRUBY_HOME%\lib" -Djruby.shell="cmd.exe" -Djruby.script=jruby.bat org.jruby.Main %JRUBY_OPTS% "%JRUBY_HOME%\bin\gem_mirror" %*
5+
%_STARTJAVA% %_VM_OPTS% -cp "%CLASSPATH%" -Djruby.base="%JRUBY_BASE%" -Djruby.home="%JRUBY_HOME%" -Djruby.lib="%JRUBY_HOME%\lib" -Djruby.shell="cmd.exe" -Djruby.script=jruby.bat org.jruby.Main %JRUBY_OPTS% "%JRUBY_HOME%\bin\gem_mirror" %_RUBY_OPTS%
66
set E=%ERRORLEVEL%
77

88
call "%~dp0_jrubycleanup"

bin/gem_server.bat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
@echo off
22
rem ---------------------------------------------------------------------------
33

4-
call "%~dp0_jrubyvars"
4+
call "%~dp0_jrubyvars" %*
55

6-
%_STARTJAVA% %_VM_OPTS% -cp "%CLASSPATH%" -Djruby.base="%JRUBY_BASE%" -Djruby.home="%JRUBY_HOME%" -Djruby.lib="%JRUBY_HOME%\lib" -Djruby.shell="cmd.exe" -Djruby.script=jruby.bat org.jruby.Main %JRUBY_OPTS% "%JRUBY_HOME%\bin\gem_server" %*
6+
%_STARTJAVA% %_VM_OPTS% -cp "%CLASSPATH%" -Djruby.base="%JRUBY_BASE%" -Djruby.home="%JRUBY_HOME%" -Djruby.lib="%JRUBY_HOME%\lib" -Djruby.shell="cmd.exe" -Djruby.script=jruby.bat org.jruby.Main %JRUBY_OPTS% "%JRUBY_HOME%\bin\gem_server" %_RUBY_OPTS%
77
set E=%ERRORLEVEL%
88

99
call "%~dp0_jrubycleanup"

bin/gemwhich.bat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
@echo off
22
rem ---------------------------------------------------------------------------
33

4-
call "%~dp0_jrubyvars"
4+
call "%~dp0_jrubyvars" %*
55

6-
%_STARTJAVA% %_VM_OPTS% -cp "%CLASSPATH%" -Djruby.base="%JRUBY_BASE%" -Djruby.home="%JRUBY_HOME%" -Djruby.lib="%JRUBY_HOME%\lib" -Djruby.shell="cmd.exe" -Djruby.script=jruby.bat org.jruby.Main %JRUBY_OPTS% "%JRUBY_HOME%\bin\gemwhich" %*
6+
%_STARTJAVA% %_VM_OPTS% -cp "%CLASSPATH%" -Djruby.base="%JRUBY_BASE%" -Djruby.home="%JRUBY_HOME%" -Djruby.lib="%JRUBY_HOME%\lib" -Djruby.shell="cmd.exe" -Djruby.script=jruby.bat org.jruby.Main %JRUBY_OPTS% "%JRUBY_HOME%\bin\gemwhich" %_RUBY_OPTS%
77
set E=%ERRORLEVEL%
88

99
call "%~dp0_jrubycleanup"

bin/jirb.bat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ rem jruby.bat - Start Script for the JRuby Interpreter
44
rem
55

66

7-
call "%~dp0_jrubyvars"
7+
call "%~dp0_jrubyvars" %*
88

9-
%_STARTJAVA% %_VM_OPTS% -cp "%CLASSPATH%" -Djruby.base="%JRUBY_BASE%" -Djruby.home="%JRUBY_HOME%" -Djruby.lib="%JRUBY_HOME%\lib" -Djruby.shell="cmd.exe" -Djruby.script=jruby.bat org.jruby.Main %JRUBY_OPTS% "%JRUBY_HOME%\bin\jirb" %*
9+
%_STARTJAVA% %_VM_OPTS% -cp "%CLASSPATH%" -Djruby.base="%JRUBY_BASE%" -Djruby.home="%JRUBY_HOME%" -Djruby.lib="%JRUBY_HOME%\lib" -Djruby.shell="cmd.exe" -Djruby.script=jruby.bat org.jruby.Main %JRUBY_OPTS% "%JRUBY_HOME%\bin\jirb" %_RUBY_OPTS%
1010
set E=%ERRORLEVEL%
1111

1212
call "%~dp0_jrubycleanup"

bin/jruby

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -107,17 +107,28 @@ fi
107107

108108
# ----- Execute The Requested Command -----------------------------------------
109109

110+
111+
JAVA_MEM=-Xmx256m
112+
JAVA_STACK=-Xss1024k
113+
110114
# Split out any -J argument for passing to the JVM.
111115
# Scanning for args is aborted by '--'.
112116
java_args=()
113117
ruby_args=()
114-
while [ $# -gt 0 ]
118+
while [ $# -gt 0 ]
115119
do
116120
case "$1" in
117-
# Whole following argument goes to JVM
118-
-J) shift; java_args=("${java_args[@]}" "${1}") ;;
119121
# Stuff after '-J' in this argument goes to JVM
120-
-J*) java_args=("${java_args[@]}" "${1:2}") ;;
122+
-J*)
123+
val=${1:2}
124+
if [ "${val:0:4}" = "-Xmx" ]; then
125+
JAVA_MEM=$val
126+
elif [ "${val:0:4}" = "-Xss" ]; then
127+
JAVA_STACK=$val
128+
else
129+
java_args=("${java_args[@]}" "${1:2}")
130+
fi
131+
;;
121132
# Match switches that take an argument
122133
-e|-I|-S) ruby_args=("${ruby_args[@]}" "$1" "$2"); shift ;;
123134
# Match same switches with argument stuck together
@@ -138,14 +149,16 @@ ruby_args=("${ruby_args[@]}" "$@")
138149
# Put the ruby_args back into the position arguments $1, $2 etc
139150
set -- "${ruby_args[@]}"
140151

152+
JAVA_OPTS="$JAVA_OPTS ${java_args[@]} $JAVA_MEM $JAVA_STACK -Xverify:none -da"
153+
141154
if $cygwin; then
142155
JAVA_HOME=`cygpath --mixed "$JAVA_HOME"`
143156
JRUBY_BASE=`cygpath --mixed "$JRUBY_BASE"`
144157
JRUBY_HOME=`cygpath --mixed "$JRUBY_HOME"`
145158
JRUBY_SHELL=`cygpath --mixed "$JRUBY_SHELL"`
146159
fi
147160

148-
exec "$JAVA_CMD" $JAVA_OPTS "${java_args[@]}" -Xmx256m -Xss1024k -Xverify:none -da -classpath "$CP" \
161+
exec "$JAVA_CMD" $JAVA_OPTS -classpath "$CP" \
149162
"-Djruby.base=$JRUBY_BASE" "-Djruby.home=$JRUBY_HOME" \
150163
"-Djruby.lib=$JRUBY_BASE/lib" -Djruby.script=jruby \
151164
"-Djruby.shell=$JRUBY_SHELL" \

bin/jruby.bat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ rem jruby.bat - Start Script for the JRuby Interpreter
44
rem
55
rem for info on environment variables, see internal batch script _jrubyvars.bat
66

7-
call "%~dp0_jrubyvars"
7+
call "%~dp0_jrubyvars" %*
88

9-
%_STARTJAVA% %_VM_OPTS% -cp "%CLASSPATH%" -Djruby.base="%JRUBY_BASE%" -Djruby.home="%JRUBY_HOME%" -Djruby.lib="%JRUBY_HOME%\lib" -Djruby.shell="cmd.exe" -Djruby.script=jruby.bat org.jruby.Main %JRUBY_OPTS% %*
9+
%_STARTJAVA% %_VM_OPTS% -cp "%CLASSPATH%" -Djruby.base="%JRUBY_BASE%" -Djruby.home="%JRUBY_HOME%" -Djruby.lib="%JRUBY_HOME%\lib" -Djruby.shell="cmd.exe" -Djruby.script=jruby.bat org.jruby.Main %JRUBY_OPTS% %_RUBY_OPTS%
1010
set E=%ERRORLEVEL%
1111

1212
call "%~dp0_jrubycleanup"

0 commit comments

Comments
 (0)