diff options
author | Keiron Liddle <keiron@apache.org> | 2001-08-31 11:45:02 +0000 |
---|---|---|
committer | Keiron Liddle <keiron@apache.org> | 2001-08-31 11:45:02 +0000 |
commit | 1ddd8db23b95380e2e500d27df70abf7492abce3 (patch) | |
tree | 7e1d8cf19ec0cea2a3549d7601afccda4170c0c0 /fop.sh | |
parent | 6a828f23048105551db9cfe3bb109e1ca78cea1c (diff) | |
download | xmlgraphics-fop-1ddd8db23b95380e2e500d27df70abf7492abce3.tar.gz xmlgraphics-fop-1ddd8db23b95380e2e500d27df70abf7492abce3.zip |
a better shell script to run fop with works
from anywhere and sets the classpath in a better way.
Submitted by: Weiqi Gao <weiqigao@networkusa.net>
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@194450 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'fop.sh')
-rwxr-xr-x | fop.sh | 107 |
1 files changed, 103 insertions, 4 deletions
@@ -1,5 +1,104 @@ -#!/bin/sh -LIBDIR=./lib -LOCALCLASSPATH=$LIBDIR/../build/fop.jar:$LIBDIR/batik.jar:$LIBDIR/xalan-2.0.0.jar:$LIBDIR/xerces-1.2.3.jar:$LIBDIR/avalon-framework-4.0.jar:$LIBDIR/logkit-1.0b4.jar:$LIBDIR/jimi-1.0.jar -java -cp $CLASSPATH:$LOCALCLASSPATH org.apache.fop.apps.Fop "$@" +#! /bin/sh +# +# Shell script to run FOP, adapted from the Jakarta-Ant project. + +if [ -f $HOME/.foprc ] ; then + . $HOME/.foprc +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +case "`uname`" in + CYGWIN*) cygwin=true ;; + Darwin*) darwin=true ;; +esac + +if [ -z "$FOP_HOME" ] ; then + # try to find FOP + if [ -d /opt/fop ] ; then + FOP_HOME=/opt/fop + fi + + if [ -d ${HOME}/opt/fop ] ; then + FOP_HOME=${HOME}/opt/fop + fi + + ## resolve links - $0 may be a link to fop's home + PRG=$0 + progname=`basename $0` + + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '.*/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname $PRG`/$link" + fi + done + + FOP_HOME=`dirname "$PRG"` + +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$FOP_HOME" ] && + FOP_HOME=`cygpath --unix "$FOP_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + else + JAVACMD=java + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." + echo " We cannot execute $JAVACMD" + exit +fi + +if [ -n "$CLASSPATH" ] ; then + LOCALCLASSPATH=$CLASSPATH +fi + +# add fop.jar, which resides in $FOP_HOME/build +LOCALCLASSPATH=${FOP_HOME}/build/fop.jar:$LOCALCLASSPATH + +# add in the dependency .jar files, which reside in $FOP_HOME/lib +DIRLIBS=${FOP_HOME}/lib/*.jar +for i in ${DIRLIBS} +do + # if the directory is empty, then it will return the input string + # this is stupid, so case for it + if [ "$i" != "${DIRLIBS}" ] ; then + if [ -z "$LOCALCLASSPATH" ] ; then + LOCALCLASSPATH=$i + else + LOCALCLASSPATH="$i":$LOCALCLASSPATH + fi + fi +done + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + FOP_HOME=`cygpath --path --windows "$FOP_HOME"` + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + LOCALCLASSPATH=`cygpath --path --windows "$LOCALCLASSPATH"` +fi + +$JAVACMD -classpath "$LOCALCLASSPATH" $FOP_OPTS org.apache.fop.apps.Fop "$@" |