fail "couldn't find the right jre: $*
perhaps you should make ypp's java symlink (normally yohoho/java)
point to your jre, eg to /usr/lib/jvm/java-6-sun"
+}
badusage () {
fail "bad usage: $*"
}
+check_only=false
+setup_only=false
+setup_only_simulate=''
+
while [ $# -ge 1 ]; do
case "$1" in
-) shift; break;;
srcjardir="$1"
shift || badusage "--jpctb needs a value"
;;
+ --check-only)
+ check_only=true
+ shift
+ ;;
+ --setup-only)
+ setup_only=true
+ setup_only_simulate=echo
+ shift
+ ;;
-*) badusage "unknown option \`$1'"
;;
*)
yppdir="${yohoho%/*}"
# this replicates the java-searching logic from yohoho/yohoho:
-if [ -x "$yohoho/java/bin/java" ]; then
- yppjava="$yohoho/java/bin/java"
+if [ -x "$yppdir/java/bin/java" ]; then
+ yppjava="$yppdir/java/bin/java"
elif [ -x "$JAVA_HOME/bin/java" ]; then
yppjava="$JAVA_HOME/bin/java"
else
jpctb:
jpctb tree: "$jpctbdir"
yohoho: "$yohoho"
+ ypp dir: "$yppdir"
ypp uses: "$yppjava"
END
nojre "bad java ypp"
fi
-javadir="${yppjava#/bin/java}"
+javadir="${yppjava%/bin/java}"
if [ -x "$javadir/jre/bin/java" ]; then
echo " java/ points to the jre, good"
+ jreleaf=jre
else
echo " java/ has just the executable bin/java, trying readlink"
absjava=`readlink -f "$yppjava"`
echo " abs. java: \"$absjava\""
case "$absjava" in
- */jre/bin/java)
- echo " found jre directory, good"
- javadir="${absjava%/jre/bin/java}"
+ */*/bin/java)
+ javadir="${absjava%/bin/java}"
+ jreleaf="${javadir##*/}"
+ javadir="${javadir%/*}"
+ echo " jre leaf dir: \"$jreleaf\""
+ case "$jreleaf" in
+ jre) echo " found jre directory, good";;
+ jre1.*) echo " found versioned jre directory $jreleaf, ok";;
+ *) nojre "java binary not in jre dir ($jreleaf)";;
+ esac
;;
*)
- nojre "java binary not in jre dir"
- ;;
+ nojre "real java binary not in ../bin/java dir";;
esac
fi
linkfarm="$jtmp/linkfarm"
extdir="$jtmp/ext"
-export JPCTB_JRE="$javadir/jre"
+export JPCTB_JRE="$javadir/$jreleaf"
+realjava="$JPCTB_JRE/bin/java"
#---------- confirm for the user which paths we're using ----------
cat <<END
- java: "$javadir"
- JRE: "$JPCTB_JRE"
- PCTB jars: "$srcjardir"
+ java dir.: "$javadir"
+ jre: "$JPCTB_JRE"
+ primary java: "$realjava"
+ jpctb jars: "$srcjardir"
jpctb tmpdir: "$jtmp"
END
#---------- run the control panel ----------
-"$javadir/bin/java" -jar "$srcjardir/PCTB-ControlPanel.jar"
+if $check_only; then echo "Check successful."; exit 0; fi
+
+set +e
+$setup_only_simulate "$realjava" \
+ -Dcom.tedpearson.ypp.market.controlpanel.exitstatus=12 \
+ -jar "$srcjardir/PCTB-ControlPanel.jar"
+rc=$?
+set -e
+
+if $setup_only; then rc=12; fi
+
+case $rc in
+0) echo "launcher dialogue closed, quitting"; exit 0 ;;
+12) ;;
+*) echo >&2 "control panel failed with exit status $rc"; exit "$rc" ;;
+esac
+
#---------- create the temporary are and link farm ----------
#---------- edit the linkfarm to have our jvm wrapper ----------
-wrapper="$linkfarm"/jre/bin/java
+wrapper="$linkfarm"/$jreleaf/bin/java
rm -- "$wrapper"
export JPCTB_EXTDIR="$extdir"
#---------- now run it ----------
-exec "$yohoho" -Djava.home="$linkfarm/jre"
+exec $setup_only_simulate "$yohoho" -Djava.home="$linkfarm/$jreleaf"