claws-mail/manual/xml2pdf
Colin Leroy 055c0220ce 2007-05-14 [colin] 2.9.2cvs8
* manual/xml2pdf
		Fix bashism, search for xml catalog
		in /usr/local/share/xml/catalog too
		Patch by Pawel
2007-05-14 20:03:50 +00:00

84 lines
1.8 KiB
Bash

#!/bin/sh
# pdf generation from xml and xsl
# $1: .xsl file
# $2: .xml file
if [ $# -ne 2 ]
then
echo "usage: ${0##*/} <file.xsl> <file.xml>"
exit 1
fi
test -z "$JAVA" && \
JAVA=`which java`
test -z "$JAVA" && \
JAVA="$JAVA_HOME/bin/java"
if [ ! -x "$JAVA" ]
then
echo 'error: java not found in your $PATH or in $JAVA_HOME/bin'
exit 1
fi
test -z "$SAXON" && \
SAXON=`which saxon`
if [ -z "$SAXON" ]
then
test -z "$SAXONJAR" && \
SAXONJAR='/usr/share/java/saxon.jar'
if [ ! -f "$SAXONJAR" ]
then
SAXONJAR='/usr/local/share/java/saxon.jar'
if [ ! -f "$SAXONJAR" ]
then
echo "error: neither saxon nor saxon.jar were found"
exit 1
fi
fi
SAXON="$JAVA -jar $SAXONJAR"
fi
if [ -n "$XML_CATALOG_FILES" ]
then
CATALOG_FILES=$XML_CATALOG_FILES
else
echo "warning: XML_CATALOG_FILES is not set or empty"
CATALOG_FILES="/usr/local/etc/xml/catalog /etc/xml/catalog
/usr/local/share/xml/catalog $HOME/xml/catalog"
fi
KEY="http://docbook.sourceforge.net/release/xsl/current"
# manual base name
SCM=claws-mail-manual
for CATALOG in $CATALOG_FILES
do
if [ -s "$CATALOG" ]
then
DOCBOOKXSLPATH=$(xmlcatalog "$CATALOG" "$KEY/")
# second chance
if [ $? -ne 0 -o -z "$DOCBOOKXSLPATH" ]
then
DOCBOOKXSLPATH=$(xmlcatalog "$CATALOG" "$KEY")
# still not found
test $? -ne 0 -o -z "$DOCBOOKXSLPATH" && \
continue
fi
test "`echo ${DOCBOOKXSLPATH} | cut -c 1-7`" = "file://" && \
DOCBOOKXSLPATH=`echo ${DOCBOOKXSLPATH} | cut -c 8-`
if [ -n "$DOCBOOKXSLPATH" ]
then
echo "docbook-xsl path found: $DOCBOOKXSLPATH"
sed "s|@DOCBOOK_XSL_PATH@|$DOCBOOKXSLPATH|g" "$1" \
> ${SCM}.xsl && \
$SAXON -o ${SCM}.fo "$2" ${SCM}.xsl && \
fop -fo ${SCM}.fo -pdf ${SCM}.pdf
exit $?
fi
fi
done
echo "couldn't find docbook-xsl path from any of the following catalog files:"
echo "$CATALOG_FILES"
exit 1