Index: bin/jruby =================================================================== --- bin/jruby (revision 6432) +++ bin/jruby (working copy) @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh # ----------------------------------------------------------------------------- # jruby.sh - Start Script for the JRuby interpreter # @@ -90,42 +90,39 @@ # Split out any -J argument for passing to the JVM. # Scanning for args is aborted by '--'. -declare -a java_args -declare -a ruby_args +java_args="" +ruby_args="" while [ $# -gt 0 ] do case "$1" in # Stuff after '-J' in this argument goes to JVM -J*) - val=${1:2} - if [ "${val:0:4}" = "-Xmx" ]; then + val=`expr $1 : '^-J\(.*\)$'` + if [ "`expr $val : '\(....\)'`" = "-Xmx" ]; then JAVA_MEM=$val - elif [ "${val:0:4}" = "-Xss" ]; then + elif [ "`expr $val : '\(....\)'`" = "-Xss" ]; then JAVA_STACK=$val else - java_args=("${java_args[@]}" "${1:2}") + java_args="$j_arg `expr $1 : '^-J\(.*\)$'`" fi ;; # Match switches that take an argument - -e|-I|-S) ruby_args=("${ruby_args[@]}" "$1" "$2"); shift ;; + -e|-I|-S) ruby_args="$ruby_args $1 \"$2\" "; shift ;; # Match same switches with argument stuck together - -e*|-I*|-S*) ruby_args=("${ruby_args[@]}" "$1" ) ;; + -e*|-I*|-S*) ruby_args="$ruby_args $1 " ;; # Abort processing on the double dash --) break ;; # Other opts go to ruby - -*) ruby_args=("${ruby_args[@]}" "$1") ;; + -*) ruby_args="$ruby_args $1 " ;; # Abort processing on first non-opt arg - *) break ;; + *) ruby_args="$ruby_args $1 " ;; esac shift done # Append the rest of the arguments -ruby_args=("${ruby_args[@]}" "$@") +ruby_args="$ruby_args $@" -# Put the ruby_args back into the position arguments $1, $2 etc -set -- "${ruby_args[@]}" - JAVA_OPTS="$JAVA_OPTS $JAVA_MEM $JAVA_STACK" if $cygwin; then @@ -141,8 +138,13 @@ fi fi -exec "$JAVA_CMD" $JAVA_OPTS "${java_args[@]}" -classpath "$CP" \ - "-Djruby.home=$JRUBY_HOME" \ - "-Djruby.lib=$JRUBY_HOME/lib" -Djruby.script=jruby \ - "-Djruby.shell=$JRUBY_SHELL" \ - org.jruby.Main $JRUBY_OPTS "$@" +all_opts="$JAVA_OPTS $java_args -classpath $CP \ +-Djruby.base=$JRUBY_BASE \ +-Djruby.home=$JRUBY_HOME \ +-Djruby.lib=$JRUBY_BASE/lib/ \ +-Djruby.shell=$JRUBY_SHELL \ +-Djruby.script=jruby \ +org.jruby.Main $ruby_args" + +eval "$JAVA_CMD $all_opts" +