055c0220ce
* manual/xml2pdf Fix bashism, search for xml catalog in /usr/local/share/xml/catalog too Patch by Pawel
84 lines
1.8 KiB
Bash
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
|