Blame xmlproc.sh

Packit 71fd91
#!/bin/bash
Packit 71fd91
# see the README file for usage etc.
Packit 71fd91
#
Packit 71fd91
# ------------------------------------------------------------------
Packit 71fd91
#  This file is part of bzip2/libbzip2, a program and library for
Packit 71fd91
#  lossless, block-sorting data compression.
Packit 71fd91
#
Packit 71fd91
#  bzip2/libbzip2 version 1.0.6 of 6 September 2010
Packit 71fd91
#  Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
Packit 71fd91
#
Packit 71fd91
#  Please read the WARNING, DISCLAIMER and PATENTS sections in the 
Packit 71fd91
#  README file.
Packit 71fd91
#
Packit 71fd91
#  This program is released under the terms of the license contained
Packit 71fd91
#  in the file LICENSE.
Packit 71fd91
# ----------------------------------------------------------------
Packit 71fd91
Packit 71fd91
Packit 71fd91
usage() {
Packit 71fd91
  echo '';
Packit 71fd91
  echo 'Usage: xmlproc.sh -[option] <filename.xml>';
Packit 71fd91
  echo 'Specify a target from:';
Packit 71fd91
  echo '-v      verify xml file conforms to dtd';
Packit 71fd91
  echo '-html   output in html format (single file)';
Packit 71fd91
  echo '-ps     output in postscript format';
Packit 71fd91
  echo '-pdf    output in pdf format';
Packit 71fd91
  exit;
Packit 71fd91
}
Packit 71fd91
Packit 71fd91
if test $# -ne 2; then
Packit 71fd91
  usage
Packit 71fd91
fi
Packit 71fd91
# assign the variable for the output type
Packit 71fd91
action=$1; shift
Packit 71fd91
# assign the output filename
Packit 71fd91
xmlfile=$1; shift
Packit 71fd91
# and check user input it correct
Packit 71fd91
if !(test -f $xmlfile); then
Packit 71fd91
  echo "No such file: $xmlfile";
Packit 71fd91
  exit;
Packit 71fd91
fi
Packit 71fd91
# some other stuff we will use
Packit 71fd91
OUT=output
Packit 71fd91
xsl_fo=bz-fo.xsl
Packit 71fd91
xsl_html=bz-html.xsl
Packit 71fd91
Packit 71fd91
basename=$xmlfile
Packit 71fd91
basename=${basename//'.xml'/''}
Packit 71fd91
Packit 71fd91
fofile="${basename}.fo"
Packit 71fd91
htmlfile="${basename}.html"
Packit 71fd91
pdffile="${basename}.pdf"
Packit 71fd91
psfile="${basename}.ps"
Packit 71fd91
xmlfmtfile="${basename}.fmt"
Packit 71fd91
Packit 71fd91
# first process the xmlfile with CDATA tags
Packit 71fd91
./format.pl $xmlfile $xmlfmtfile
Packit 71fd91
# so the shell knows where the catalogs live
Packit 71fd91
export XML_CATALOG_FILES=/etc/xml/catalog
Packit 71fd91
Packit 71fd91
# post-processing tidy up
Packit 71fd91
cleanup() {
Packit 71fd91
  echo "Cleaning up: $@" 
Packit 71fd91
  while [ $# != 0 ]
Packit 71fd91
  do
Packit 71fd91
    arg=$1; shift;
Packit 71fd91
    echo "  deleting $arg";
Packit 71fd91
    rm $arg
Packit 71fd91
  done
Packit 71fd91
}
Packit 71fd91
Packit 71fd91
case $action in
Packit 71fd91
  -v)
Packit 71fd91
   flags='--noout --xinclude --noblanks --postvalid'
Packit 71fd91
   dtd='--dtdvalid http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd'
Packit 71fd91
   xmllint $flags $dtd $xmlfmtfile 2> $OUT 
Packit 71fd91
   egrep 'error' $OUT 
Packit 71fd91
   rm $OUT
Packit 71fd91
  ;;
Packit 71fd91
Packit 71fd91
  -html)
Packit 71fd91
   echo "Creating $htmlfile ..."
Packit 71fd91
   xsltproc --nonet --xinclude  -o $htmlfile $xsl_html $xmlfmtfile
Packit 71fd91
   cleanup $xmlfmtfile
Packit 71fd91
  ;;
Packit 71fd91
Packit 71fd91
  -pdf)
Packit 71fd91
   echo "Creating $pdffile ..."
Packit 71fd91
   xsltproc --nonet --xinclude -o $fofile $xsl_fo $xmlfmtfile
Packit 71fd91
   pdfxmltex $fofile >$OUT 
Packit 71fd91
   pdfxmltex $fofile >$OUT 
Packit 71fd91
   pdfxmltex $fofile >$OUT 
Packit 71fd91
   cleanup $OUT $xmlfmtfile *.aux *.fo *.log *.out
Packit 71fd91
  ;;
Packit 71fd91
Packit 71fd91
  -ps)
Packit 71fd91
   echo "Creating $psfile ..."
Packit 71fd91
   xsltproc --nonet --xinclude -o $fofile $xsl_fo $xmlfmtfile
Packit 71fd91
   pdfxmltex $fofile >$OUT 
Packit 71fd91
   pdfxmltex $fofile >$OUT 
Packit 71fd91
   pdfxmltex $fofile >$OUT 
Packit 71fd91
   pdftops $pdffile $psfile
Packit 71fd91
   cleanup $OUT $xmlfmtfile $pdffile *.aux *.fo *.log *.out
Packit 71fd91
#  passivetex is broken, so we can't go this route yet.
Packit 71fd91
#   xmltex $fofile >$OUT 
Packit 71fd91
#   xmltex $fofile >$OUT 
Packit 71fd91
#   xmltex $fofile >$OUT 
Packit 71fd91
#   dvips -R -q -o bzip-manual.ps *.dvi
Packit 71fd91
  ;;
Packit 71fd91
Packit 71fd91
  *)
Packit 71fd91
  usage
Packit 71fd91
  ;;
Packit 71fd91
esac