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