273 lines
7.9 KiB
Diff
273 lines
7.9 KiB
Diff
diff -Naur jruby-1.5.1.bak/bin/jruby.sh jruby-1.5.1/bin/jruby.sh
|
|
--- jruby-1.5.1.bak/bin/jruby.sh 2010-06-15 21:23:11.000000000 +1200
|
|
+++ jruby-1.5.1/bin/jruby.sh 2010-06-15 21:29:14.000000000 +1200
|
|
@@ -11,16 +11,16 @@
|
|
#
|
|
# -----------------------------------------------------------------------------
|
|
|
|
-cygwin=false
|
|
-
|
|
# ----- Identify OS we are running under --------------------------------------
|
|
case "`uname`" in
|
|
- CYGWIN*) cygwin=true;;
|
|
Darwin) darwin=true;;
|
|
esac
|
|
|
|
# ----- Verify and Set Required Environment Variables -------------------------
|
|
|
|
+#This will be filled in by the ebuild after install
|
|
+JRUBY_HOME=
|
|
+
|
|
## resolve links - $0 may be a link to home
|
|
PRG=$0
|
|
progname=`basename "$0"`
|
|
@@ -39,12 +39,14 @@
|
|
fi
|
|
done
|
|
|
|
-JRUBY_HOME_1=`dirname "$PRG"` # the ./bin dir
|
|
-if [ "$JRUBY_HOME_1" = '.' ] ; then
|
|
- cwd=`pwd`
|
|
- JRUBY_HOME=`dirname $cwd` # JRUBY-2699
|
|
-else
|
|
- JRUBY_HOME=`dirname "$JRUBY_HOME_1"` # the . dir
|
|
+if [ -z "$JRUBY_HOME" ]; then
|
|
+ JRUBY_HOME_1=`dirname "$PRG"`
|
|
+ if [ "$JRUBY_HOME_1" = '.' ] ; then
|
|
+ cwd=`pwd`
|
|
+ JRUBY_HOME=`dirname $cwd` # JRUBY-2699
|
|
+ else
|
|
+ JRUBY_HOME=`dirname "$JRUBY_HOME_1"` # the . dir
|
|
+ fi
|
|
fi
|
|
|
|
if [ -z "$JRUBY_OPTS" ] ; then
|
|
@@ -74,85 +76,17 @@
|
|
done
|
|
JRUBY_OPTS=${JRUBY_OPTS_TEMP}
|
|
|
|
-if [ -z "$JAVA_HOME" ] ; then
|
|
- JAVA_CMD='java'
|
|
-else
|
|
- if $cygwin; then
|
|
- JAVA_HOME=`cygpath -u "$JAVA_HOME"`
|
|
- fi
|
|
- JAVA_CMD="$JAVA_HOME/bin/java"
|
|
-fi
|
|
-
|
|
-# If you're seeing odd exceptions, you may have a bad JVM install.
|
|
-# Uncomment this and report the version to the JRuby team along with error.
|
|
-#$JAVA_CMD -version
|
|
-
|
|
JRUBY_SHELL=/bin/sh
|
|
|
|
# ----- Set Up The Boot Classpath -------------------------------------------
|
|
|
|
-CP_DELIMITER=":"
|
|
-
|
|
-# add main jruby jar to the bootclasspath
|
|
-for j in "$JRUBY_HOME"/lib/jruby.jar "$JRUBY_HOME"/lib/jruby-complete.jar; do
|
|
- if [ ! -e "$j" ]; then
|
|
- continue
|
|
- fi
|
|
- if [ "$JRUBY_CP" ]; then
|
|
- JRUBY_CP="$JRUBY_CP$CP_DELIMITER$j"
|
|
- else
|
|
- JRUBY_CP="$j"
|
|
- fi
|
|
- if [ $JRUBY_ALREADY_ADDED ]; then
|
|
- echo "WARNING: more than one JRuby JAR found in lib directory"
|
|
- fi
|
|
- JRUBY_ALREADY_ADDED=true
|
|
-done
|
|
-
|
|
-if $cygwin; then
|
|
- JRUBY_CP=`cygpath -p -w "$JRUBY_CP"`
|
|
-fi
|
|
-
|
|
-# ----- Set Up The System Classpath -------------------------------------------
|
|
-
|
|
-if [ "$JRUBY_PARENT_CLASSPATH" != "" ]; then
|
|
- # Use same classpath propagated from parent jruby
|
|
- CP=$JRUBY_PARENT_CLASSPATH
|
|
-else
|
|
- # add other jars in lib to CP for command-line execution
|
|
- for j in "$JRUBY_HOME"/lib/*.jar; do
|
|
- if [ "$j" == "$JRUBY_HOME"/lib/jruby.jar ]; then
|
|
- continue
|
|
- fi
|
|
- if [ "$j" == "$JRUBY_HOME"/lib/jruby-complete.jar ]; then
|
|
- continue
|
|
- fi
|
|
- if [ "$CP" ]; then
|
|
- CP="$CP$CP_DELIMITER$j"
|
|
- else
|
|
- CP="$j"
|
|
- fi
|
|
- done
|
|
-
|
|
- if $cygwin; then
|
|
- CP=`cygpath -p -w "$CP"`
|
|
- fi
|
|
-fi
|
|
-
|
|
-if $cygwin; then
|
|
- # switch delimiter only after building Unix style classpaths
|
|
- CP_DELIMITER=";"
|
|
-fi
|
|
+JRUBY_CP="$(java-config -d -p jruby)"
|
|
+CP="${JRUBY_PARENT_CLASSPATH}"
|
|
|
|
# ----- Execute The Requested Command -----------------------------------------
|
|
|
|
-if [ -z "$JAVA_MEM" ] ; then
|
|
- JAVA_MEM=-Xmx500m
|
|
-fi
|
|
-
|
|
-if [ -z "$JAVA_STACK" ] ; then
|
|
- JAVA_STACK=-Xss1024k
|
|
-fi
|
|
+JAVA_MEM=${JAVA_MEM:--Xmx500m}
|
|
+JAVA_STACK=${JAVA_STACK:--Xss1024k}
|
|
|
|
JAVA_VM=-client
|
|
JAVA_ENCODING=""
|
|
@@ -175,19 +109,19 @@
|
|
elif [ "${val:0:4}" = "-Xss" ]; then
|
|
JAVA_STACK=$val
|
|
elif [ "${val}" = "" ]; then
|
|
- $JAVA_CMD -help
|
|
+ java -help
|
|
echo "(Prepend -J in front of these options when using 'jruby' command)"
|
|
exit
|
|
elif [ "${val}" = "-X" ]; then
|
|
- $JAVA_CMD -X
|
|
+ java -X
|
|
echo "(Prepend -J in front of these options when using 'jruby' command)"
|
|
exit
|
|
elif [ "${val}" = "-classpath" ]; then
|
|
- CP="$CP$CP_DELIMITER$2"
|
|
+ CP="$CP:$2"
|
|
CLASSPATH=""
|
|
shift
|
|
elif [ "${val}" = "-cp" ]; then
|
|
- CP="$CP$CP_DELIMITER$2"
|
|
+ CP="$CP:$2"
|
|
CLASSPATH=""
|
|
shift
|
|
else
|
|
@@ -224,15 +158,8 @@
|
|
java_args=("${java_args[@]}" "-Djava.awt.headless=true") ;;
|
|
# Run under JDB
|
|
--jdb)
|
|
- if [ -z "$JAVA_HOME" ] ; then
|
|
- JAVA_CMD='jdb'
|
|
- else
|
|
- if $cygwin; then
|
|
- JAVA_HOME=`cygpath -u "$JAVA_HOME"`
|
|
- fi
|
|
- JAVA_CMD="$JAVA_HOME/bin/jdb"
|
|
- fi
|
|
- java_args=("${java_args[@]}" "-sourcepath" "$JRUBY_HOME/lib/ruby/1.8:.")
|
|
+ JAVA_CMD="jdb"
|
|
+ java_args=("${java_args[@]}" "-sourcepath" "$JRUBY_HOME/lib/ruby/1.8:.")
|
|
JRUBY_OPTS=("${JRUBY_OPTS[@]}" "-X+C") ;;
|
|
--client)
|
|
JAVA_VM=-client ;;
|
|
@@ -275,51 +202,16 @@
|
|
|
|
-JAVA_OPTS="$JAVA_OPTS $JAVA_MEM $JAVA_STACK"
|
|
+JAVA_OPTS="$JAVA_OPTS $JAVA_MEM $JAVA_STACK -Djruby.bindir=/usr/bin"
|
|
|
|
-JFFI_BOOT=""
|
|
-if [ -d $JRUBY_HOME/lib/native/ ]; then
|
|
- for d in $JRUBY_HOME/lib/native/*`uname -s`; do
|
|
- if [ -z "$JFFI_BOOT" ]; then
|
|
- JFFI_BOOT="$d"
|
|
- else
|
|
- JFFI_BOOT="$JFFI_BOOT:$d"
|
|
- fi
|
|
- done
|
|
-fi
|
|
-JFFI_OPTS="-Djffi.boot.library.path=$JFFI_BOOT"
|
|
-
|
|
-if $cygwin; then
|
|
- JRUBY_HOME=`cygpath --mixed "$JRUBY_HOME"`
|
|
- JRUBY_SHELL=`cygpath --mixed "$JRUBY_SHELL"`
|
|
-
|
|
- if [[ ( "${1:0:1}" = "/" ) && ( ( -f "$1" ) || ( -d "$1" )) ]]; then
|
|
- win_arg=`cygpath -w "$1"`
|
|
- shift
|
|
- win_args=("$win_arg" "$@")
|
|
- set -- "${win_args[@]}"
|
|
- fi
|
|
-
|
|
- # fix JLine to use UnixTerminal
|
|
- stty -icanon min 1 -echo > /dev/null 2>&1
|
|
- if [ $? = 0 ]; then
|
|
- JAVA_OPTS="$JAVA_OPTS -Djline.terminal=jline.UnixTerminal"
|
|
- fi
|
|
-
|
|
-fi
|
|
+JFFI_OPTS="-Djffi.boot.library.path=$(java-config -di jffi-0.4)"
|
|
|
|
if [ "$nailgun_client" != "" ]; then
|
|
- if [ -f $JRUBY_HOME/tool/nailgun/ng ]; then
|
|
- exec $JRUBY_HOME/tool/nailgun/ng org.jruby.util.NailMain $JRUBY_OPTS "$@"
|
|
- else
|
|
- echo "error: ng executable not found; run 'make' in ${JRUBY_HOME}/tool/nailgun"
|
|
- exit 1
|
|
- fi
|
|
-else
|
|
-if [ "$VERIFY_JRUBY" != "" ]; then
|
|
+ exec /usr/bin/ng org.jruby.util.NailMain $JRUBY_OPTS "$@"
|
|
+elif [ "$VERIFY_JRUBY" != "" ]; then
|
|
if [ "$PROFILE_ARGS" != "" ]; then
|
|
echo "Running with instrumented profiler"
|
|
fi
|
|
|
|
- "$JAVA_CMD" $PROFILE_ARGS $JAVA_OPTS "$JFFI_OPTS" "${java_args[@]}" -classpath "$JRUBY_CP$CP_DELIMITER$CP$CP_DELIMITER$CLASSPATH" \
|
|
+ "${JAVA_CMD:-java}" $PROFILE_ARGS $JAVA_OPTS "$JFFI_OPTS" "${java_args[@]}" -classpath "$JRUBY_CP:$CP:$CLASSPATH" \
|
|
"-Djruby.home=$JRUBY_HOME" \
|
|
"-Djruby.lib=$JRUBY_HOME/lib" -Djruby.script=jruby \
|
|
"-Djruby.shell=$JRUBY_SHELL" \
|
|
@@ -334,34 +226,14 @@
|
|
rm profile.txt
|
|
fi
|
|
|
|
- if $cygwin; then
|
|
- stty icanon echo > /dev/null 2>&1
|
|
- fi
|
|
-
|
|
exit $JRUBY_STATUS
|
|
else
|
|
- if $cygwin; then
|
|
- # exec doed not work correctly with cygwin bash
|
|
- "$JAVA_CMD" $JAVA_OPTS "$JFFI_OPTS" "${java_args[@]}" -Xbootclasspath/a:"$JRUBY_CP" -classpath "$CP$CP_DELIMITER$CLASSPATH" \
|
|
- "-Djruby.home=$JRUBY_HOME" \
|
|
- "-Djruby.lib=$JRUBY_HOME/lib" -Djruby.script=jruby \
|
|
- "-Djruby.shell=$JRUBY_SHELL" \
|
|
- $java_class $JRUBY_OPTS "$@"
|
|
-
|
|
- # Record the exit status immediately, or it will be overridden.
|
|
- JRUBY_STATUS=$?
|
|
-
|
|
- stty icanon echo > /dev/null 2>&1
|
|
+ exec "${JAVA_CMD:-java}" $JAVA_OPTS "$JFFI_OPTS" "${java_args[@]}" -Xbootclasspath/a:"$JRUBY_CP" -classpath "$CP:$CLASSPATH" \
|
|
+ "-Djruby.home=$JRUBY_HOME" \
|
|
+ "-Djruby.lib=$JRUBY_HOME/lib" -Djruby.script=jruby \
|
|
+ "-Djruby.shell=$JRUBY_SHELL" \
|
|
+ $java_class $JRUBY_OPTS "$@"
|
|
|
|
- exit $JRUBY_STATUS
|
|
- else
|
|
- exec "$JAVA_CMD" $JAVA_OPTS "$JFFI_OPTS" "${java_args[@]}" -Xbootclasspath/a:"$JRUBY_CP" -classpath "$CP$CP_DELIMITER$CLASSPATH" \
|
|
- "-Djruby.home=$JRUBY_HOME" \
|
|
- "-Djruby.lib=$JRUBY_HOME/lib" -Djruby.script=jruby \
|
|
- "-Djruby.shell=$JRUBY_SHELL" \
|
|
- $java_class $JRUBY_OPTS "$@"
|
|
- fi
|
|
-fi
|
|
fi
|
|
|
|
# Be careful adding code down here, you might override the exit
|