aboutsummaryrefslogtreecommitdiff
path: root/xmlproc.sh
diff options
context:
space:
mode:
authorJulian Seward <jseward@acm.org>2005-02-15 22:13:13 +0100
committerJulian Seward <jseward@acm.org>2005-02-15 22:13:13 +0100
commit4d540bfc95a4b0eefc1d1f388ec33534aaeb3a2f (patch)
tree3b7e9c650b4c61d114e1716c4698e40d5c8d7ef7 /xmlproc.sh
parent099d844292f60f9d58914da29e5773204dc55e7a (diff)
downloadbzip2-4d540bfc95a4b0eefc1d1f388ec33534aaeb3a2f.tar.gz
bzip2-4d540bfc95a4b0eefc1d1f388ec33534aaeb3a2f.tar.bz2
bzip2-4d540bfc95a4b0eefc1d1f388ec33534aaeb3a2f.zip
bzip2-1.0.3bzip2-1.0.3
Diffstat (limited to 'xmlproc.sh')
-rwxr-xr-xxmlproc.sh99
1 files changed, 99 insertions, 0 deletions
diff --git a/xmlproc.sh b/xmlproc.sh
new file mode 100755
index 0000000..6fe4d57
--- /dev/null
+++ b/xmlproc.sh
@@ -0,0 +1,99 @@
1#!/bin/bash
2# see the README in this directory for usage etc.
3
4usage() {
5 echo '';
6 echo 'Usage: xmlproc.sh -[option] <filename.xml>';
7 echo 'Specify a target from:';
8 echo '-v verify xml file conforms to dtd';
9 echo '-html output in html format (single file)';
10 echo '-ps output in postscript format';
11 echo '-pdf output in pdf format';
12 exit;
13}
14
15if test $# -ne 2; then
16 usage
17fi
18# assign the variable for the output type
19action=$1; shift
20# assign the output filename
21xmlfile=$1; shift
22# and check user input it correct
23if !(test -f $xmlfile); then
24 echo "No such file: $xmlfile";
25 exit;
26fi
27# some other stuff we will use
28OUT=output
29xsl_fo=bz-fo.xsl
30xsl_html=bz-html.xsl
31
32basename=$xmlfile
33basename=${basename//'.xml'/''}
34
35fofile="${basename}.fo"
36htmlfile="${basename}.html"
37pdffile="${basename}.pdf"
38psfile="${basename}.ps"
39xmlfmtfile="${basename}.fmt"
40
41# first process the xmlfile with CDATA tags
42./format.pl $xmlfile $xmlfmtfile
43# so the shell knows where the catalogs live
44export XML_CATALOG_FILES=/etc/xml/catalog
45
46# post-processing tidy up
47cleanup() {
48 echo "Cleaning up: # $@"
49 while [ $# != 0 ]
50 do
51 arg=$1; shift;
52 echo " deleting $arg";
53 rm $arg
54 done
55}
56
57case $action in
58 -v)
59 flags='--noout --xinclude --noblanks --postvalid'
60 dtd='--dtdvalid http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd'
61 xmllint $flags $dtd $xmlfmtfile 2> $OUT
62 egrep 'error' $OUT
63 rm $OUT
64 ;;
65
66 -html)
67 echo "Creating $htmlfile ..."
68 xsltproc --nonet --xinclude -o $htmlfile $xsl_html $xmlfmtfile
69 cleanup $xmlfmtfile
70 ;;
71
72 -pdf)
73 echo "Creating $pdffile ..."
74 xsltproc --nonet --xinclude -o $fofile $xsl_fo $xmlfmtfile
75 pdfxmltex $fofile >$OUT </dev/null
76 pdfxmltex $fofile >$OUT </dev/null
77 pdfxmltex $fofile >$OUT </dev/null
78 cleanup $OUT $xmlfmtfile *.aux *.fo *.log *.out
79 ;;
80
81 -ps)
82 echo "Creating $psfile ..."
83 xsltproc --nonet --xinclude -o $fofile $xsl_fo $xmlfmtfile
84 pdfxmltex $fofile >$OUT </dev/null
85 pdfxmltex $fofile >$OUT </dev/null
86 pdfxmltex $fofile >$OUT </dev/null
87 pdftops $pdffile $psfile
88 cleanup $OUT $xmlfmtfile $pdffile *.aux *.fo *.log *.out
89# passivetex is broken, so we can't go this route yet.
90# xmltex $fofile >$OUT </dev/null
91# xmltex $fofile >$OUT </dev/null
92# xmltex $fofile >$OUT </dev/null
93# dvips -R -q -o bzip-manual.ps *.dvi
94 ;;
95
96 *)
97 usage
98 ;;
99esac