blob: a60abb397b87ad308867d0e6965b49b2295ffea0 [file] [log] [blame]
#!/bin/sh
# run-fop: Attempt to run fop (or fop.sh), fail articulately otherwise.
#
# Usage: run-fop.sh BOOK_TOP [FOP_ARGS...]
#
# This script is meant to be invoked by subversion/doc/book/Makefile.
# The first argument is the top of the book directory, that is,
# subversion/doc/book (*not* subversion/doc/book/book), and the
# remaining arguments are passed along to `fop'.
BOOK_TOP=${1}
if [ "${BOOK_TOP}X" = X ]; then
echo "usage: run-fop.sh BOOK_TOP [FOP_ARGS...]"
exit 1
fi
shift
# The fop of last resort.
DESPERATION_FOP_DIR=${BOOK_TOP}/tools/fop
DESPERATION_FOP_PGM=${DESPERATION_FOP_DIR}/fop.sh
if [ "${FOP_HOME}X" = X ]; then
FOP_HOME=${DESPERATION_FOP_DIR}
export FOP_HOME
fi
# Unfortunately, 'which' seems to behave slightly differently on every
# platform, making it unreliable for shell scripts. Just do it inline
# instead. Also, note that we search for `fop' or `fop.sh', since
# different systems seem to package it different ways.
SAVED_IFS=${IFS}
IFS=:
for dir in ${PATH}; do
if [ -x ${dir}/fop -a "${FOP_PGM}X" = X ]; then
FOP_PGM=${dir}/fop
elif [ -x ${dir}/fop.sh -a "${FOP_PGM}X" = X ]; then
FOP_PGM=${dir}/fop.sh
fi
done
IFS=${SAVED_IFS}
if [ "${FOP_PGM}X" = X ]; then
FOP_PGM=${DESPERATION_FOP_PGM}
fi
echo "(Using '${FOP_PGM}' for FOP)"
# FOP is noisy on stdout, and -q doesn't seem to help, so stuff that
# garbage into /dev/null.
${FOP_PGM} $@ | grep -v "\[ERROR\]"