12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #!/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
|