aboutsummaryrefslogtreecommitdiffstats
path: root/fop.sh
diff options
context:
space:
mode:
authorKeiron Liddle <keiron@apache.org>2001-08-31 11:45:02 +0000
committerKeiron Liddle <keiron@apache.org>2001-08-31 11:45:02 +0000
commit1ddd8db23b95380e2e500d27df70abf7492abce3 (patch)
tree7e1d8cf19ec0cea2a3549d7601afccda4170c0c0 /fop.sh
parent6a828f23048105551db9cfe3bb109e1ca78cea1c (diff)
downloadxmlgraphics-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-xfop.sh107
1 files changed, 103 insertions, 4 deletions
diff --git a/fop.sh b/fop.sh
index 0e8999b44..2bbf32ca8 100755
--- a/fop.sh
+++ b/fop.sh
@@ -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 "$@"