You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by ke...@apache.org on 2001/08/31 13:45:02 UTC

cvs commit: xml-fop fop.sh

keiron      01/08/31 04:45:02

  Modified:    .        fop.sh
  Log:
  a better shell script to run fop with works
  from anywhere and sets the classpath in a better way.
  Submitted by:	Weiqi Gao <we...@networkusa.net>
  
  Revision  Changes    Path
  1.4       +103 -4    xml-fop/fop.sh
  
  Index: fop.sh
  ===================================================================
  RCS file: /home/cvs/xml-fop/fop.sh,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- fop.sh	2001/08/20 21:11:02	1.3
  +++ fop.sh	2001/08/31 11:45:02	1.4
  @@ -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 "$@"
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org