Index: jruby-1.4.0/bin/jruby =================================================================== --- jruby-1.4.0.orig/bin/jruby +++ jruby-1.4.0/bin/jruby @@ -11,26 +11,17 @@ # # ----------------------------------------------------------------------------- -cygwin=false - # ----- Identify OS we are running under -------------------------------------- case "`uname`" in - CYGWIN*) cygwin=true;; Darwin) darwin=true;; esac -# -# Figure out the OS and cpu the same as JNA would, so the library path can be set -# -case "`uname -m`" in - i[34567]86) JNA_CPU=i386; JNA_ALT_CPU=amd64;; - i86pc) JNA_CPU="x86"; JNA_ALT_CPU=amd64;; - amd64|x86_64) JNA_CPU=amd64; JNA_ALT_CPU=i386;; - sparc*) JNA_CPU=sparc; JNA_ALT_CPU=sparcv9;; -esac - # ----- Verify and Set Required Environment Variables ------------------------- +# This will be filled in by the ebuild after install +JRUBY_HOME= + +# ++ebuild-cut-here++ ## resolve links - $0 may be a link to home PRG=$0 progname=`basename "$0"` @@ -49,13 +40,16 @@ while [ -h "$PRG" ] ; do 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"` # 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 + fi fi +# --ebuild-cut-here-- if [ -z "$JRUBY_OPTS" ] ; then JRUBY_OPTS="" @@ -84,72 +78,17 @@ for opt in ${JRUBY_OPTS[@]}; do 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 jruby jars for command-line execution -for j in "$JRUBY_HOME"/lib/{jruby*,bsf}.jar; do - if [ "$JRUBY_CP" ]; then - JRUBY_CP="$JRUBY_CP$CP_DELIMITER$j" - else - JRUBY_CP="$j" - fi -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 [ "$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="" @@ -172,18 +111,18 @@ do 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" shift elif [ "${val}" = "-cp" ]; then - CP="$CP$CP_DELIMITER$2" + CP="$CP:$2" shift else if [ "${val:0:3}" = "-ea" ]; then @@ -221,14 +160,7 @@ do 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_CMD='jdb' java_args=("${java_args[@]}" "-sourcepath" "$JRUBY_HOME/lib/ruby/1.8:.") JRUBY_OPTS=("${JRUBY_OPTS[@]}" "-X+C") ;; --client) @@ -270,57 +202,17 @@ ruby_args=("${ruby_args[@]}" "$@") set -- "${ruby_args[@]}" JAVA_OPTS="$JAVA_OPTS $JAVA_MEM $JAVA_STACK" -JNA_OS="`uname -s | tr '[:upper:]' '[:lower:]'`" -case "$JNA_OS" in -darwin) JNA_PATH="$JRUBY_HOME/lib/native/darwin";; - *) JNA_PATH="$JRUBY_HOME/lib/native/${JNA_OS}-${JNA_CPU}:$JRUBY_HOME/lib/native/${JNA_OS}-${JNA_ALT_CPU}";; -esac -#JAVA_OPTS="$JAVA_OPTS -Djna.boot.library.path=$JNA_PATH" -JAVA_JNA="-Djna.boot.library.path=$JNA_PATH" -JFFI_BOOT="" -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 -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 +JAVA_JNA="-Djna.boot.library.path=$(java-config -i jna)" 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 "$JAVA_JNA" "$JFFI_OPTS" "${java_args[@]}" -classpath "$JRUBY_CP$CP_DELIMITER$CP$CP_DELIMITER$CLASSPATH" \ + "${JAVA_CMD:-java}" $PROFILE_ARGS $JAVA_OPTS "$JAVA_JNA" "${java_args[@]}" -classpath "$JRUBY_CP:$CP:$CLASSPATH" \ "-Djruby.home=$JRUBY_HOME" \ "-Djruby.lib=$JRUBY_HOME/lib" -Djruby.script=jruby \ "-Djruby.shell=$JRUBY_SHELL" \ @@ -335,34 +228,13 @@ if [ "$VERIFY_JRUBY" != "" ]; then 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 "$JAVA_JNA" "$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 - - exit $JRUBY_STATUS - else - exec "$JAVA_CMD" $JAVA_OPTS "$JAVA_JNA" "$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 + exec "${JAVA_CMD:-java}" $JAVA_OPTS "$JAVA_JNA" "${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 "$@" fi # Be careful adding code down here, you might override the exit