#! /bin/sh -e

# $Id: lr_xml2xhtml.in,v 1.11 2002/04/13 22:55:16 vanbaal Exp $

#
# Copyright (C) 2000-2002 Stichting LogReport Foundation LogReport@LogReport.org
# 
#     This program is free software; you can redistribute it and/or modify
#     it under the terms of the GNU General Public License as published by
#     the Free Software Foundation; either version 2 of the License, or
#     (at your option) any later version.
# 
#     This program is distributed in the hope that it will be useful,
#     but WITHOUT ANY WARRANTY; without even the implied warranty of
#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#     GNU General Public License for more details.
# 
#     You should have received a copy of the GNU General Public License
#     along with this program (see COPYING); if not, check with
#     http://www.gnu.org/copyleft/gpl.html or write to the Free Software 
#     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
#

PROGRAM=lr_xml2xhtml

# dereference sysconfdir's prefix dependency
prefix="/usr/local"
etcdir="${prefix}/etc/lire"
 
. $etcdir/profile_lean

tag="all all ${LR_ID:-UNSET} $PROGRAM"

echo >&2 "$tag info started with $*"

if test $# -lt 1
then
  echo >&2 "$tag err expecting argument. syntax: $PROGRAM [-i] [-1] report.xml"
  exit 1
fi

images=
type=xhtml
while getopts :i1 a
do
    case $a in
    i)
        images="-i"
        ;;
    1)
	type="xhtml_page"
	;;
    *)
        echo >&2 "$tag err usage $PROGRAM [-i] [-1] report.xml"
        exit 1
        ;;
    esac
done
shift `expr $OPTIND - 1 || true`

file="$1"

if test ! -r "$file"
then
  echo >&2 "$tag err file '$file' is not readable."
  exit 1
fi

lr_check_prereq $images $type || exit 1

# get global vars
prefix="/usr/local"
datadir="${prefix}/share/lire"
exec_prefix="${prefix}"
libexecdir="${exec_prefix}/libexec/lire"
etcdir="${prefix}/etc/lire"
. $etcdir/defaults

if test ! -d "$TMPDIR"
then
    echo >&2 "$tag notice dir $TMPDIR does not exist, creating it"
    if mkdir "$TMPDIR"
    then
        :
    else
        echo >&2 "$tag err cannot create $TMPDIR, exiting"
        exit 1
    fi
fi

tmpdir="$TMPDIR/$PROGRAM.$$"
tmpreportdir="$tmpdir/report"
echo >&2 "$tag debug creating temporary report dir $tmpreportdir"
if mkdir -p $tmpreportdir
then
    :
else
    echo >&2 "$tag err failed to create $tmpreportdir"
    exit 1
fi

xmlfile="$TMPDIR/$PROGRAM.all.$$.xml"
if test -n "$images"
then
    lr_xml2png -o $tmpreportdir < $file > $xmlfile
else
    cp $file $xmlfile
fi

dbxfile="$TMPDIR/$PROGRAM.all.$$.dbx"
echo >&2 "$tag info running lr_xml2dbx to convert $xmlfile to DocBook XML $dbxfile..."
lr_xml2dbx $xmlfile > $dbxfile

echo >&2 "$tag info converting $dbxfile to XHTML into $tmpreportdir"

if test $type = "xhtml"
then
    xslfile=$LR_DBK_XHTML_XSL
else
    xslfile=$LR_DBK_XHTML_ONEPAGE_XSL
fi

oldpwd="`pwd`"
cd $tmpreportdir
lr_xslt $xslfile $dbxfile > index.xhtm
cd ..
$LR_TAR cf - report

cd "$oldpwd"

# clean temp
if test -n "$LR_KEEP"
then
    echo >&2 "$tag notice keeping temporary files in $tmpdir on your request. remove manually"
else
    rm -r $tmpdir $xmlfile $dbxfile
fi

echo >&2 "$tag info stopped"

