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