#!/bin/bash -e usage () { cat <&2 "jpctb: $*" exit 127 } if [ $# -lt 2 ]; then usage; fail 'bad usage'; exit 127; fi srcjardir="$1"; shift yohoho="$1"; shift #---------- find ourselves ---------- jpctbdir="$0" jpctbdir="${jpctbdir%/*}" case "$jpctbdir" in /*) ;; *) jpctbdir="$PWD/$jpctbdir" ;; esac #---------- find YPP client and the Java installation it uses ---------- yppdir="${yohoho%/*}" if [ -x "$yppdir/java/bin/java" ]; then javadir="$yppdir/java" elif [ x"$JAVA_HOME" != x ] && [ -x "$JAVA_HOME/bin/java" ]; then javadir="$JAVA_HOME" else fail "could not find java runtime system" fi case "$javadir" in /*) ;; *) javadir="$PWD/$javadir" ;; esac jtmp="$jpctbdir/tmp" linkfarm="$jtmp/linkfarm" extdir="$jtmp/ext" #---------- confirm for the user which paths we're using ---------- cat <"$wrapper" #!/bin/bash set -e$JPCTB_JWRAP_X log () { lh=`date +'%Y/%m/%d %H:%M:%S jpctb'` printf >&2 "%s: %s |\f\n" "$lh" "$*" } log "invoked as $*" #echo >&2 "$djava-wrap #exec 4>>/home/ian/u #date >&4 #exec 4>&- yppclass=com.threerings.yohoho.client.YoApp atclass=com.tedpearson.ypp.market.MarketUploader args=( "$@" ) nargs=${#args[*]} lastarg="${args[$(( $nargs - 1 ))]}" fail () { echo >&2 "jpctb-java: $*"; exit 127; } if [ x"$lastarg" = x"$yppclass" ]; then [ x"$JPCTB_EXTDIR" != x ] || fail 'JPCTB_EXTDIR not set' set -e$JPCTB_JWRAP_X -- \ -Djavax.accessibility.assistive_technologies=$atclass \ -Djava.ext.dirs="$JPCTB_EXTDIR:$JPCTB_JRE/lib/ext" \ "$@" fi real="$JPCTB_JRE/bin/java" log "running $real $*" exec "$real" "$@" END chmod +x -- "$wrapper" #---------- now run it ---------- exec "$yohoho" -Djava.home="$linkfarm/jre"