xref: /aosp_15_r20/external/bzip2/xmlproc.sh (revision 0ac9a9daea5cce2e775d5da949508593e2ee9206)
1*0ac9a9daSXin Li#!/bin/bash
2*0ac9a9daSXin Li# see the README file for usage etc.
3*0ac9a9daSXin Li#
4*0ac9a9daSXin Li# ------------------------------------------------------------------
5*0ac9a9daSXin Li#  This file is part of bzip2/libbzip2, a program and library for
6*0ac9a9daSXin Li#  lossless, block-sorting data compression.
7*0ac9a9daSXin Li#
8*0ac9a9daSXin Li#  bzip2/libbzip2 version 1.0.8 of 13 July 2019
9*0ac9a9daSXin Li#  Copyright (C) 1996-2019 Julian Seward <[email protected]>
10*0ac9a9daSXin Li#
11*0ac9a9daSXin Li#  Please read the WARNING, DISCLAIMER and PATENTS sections in the
12*0ac9a9daSXin Li#  README file.
13*0ac9a9daSXin Li#
14*0ac9a9daSXin Li#  This program is released under the terms of the license contained
15*0ac9a9daSXin Li#  in the file LICENSE.
16*0ac9a9daSXin Li# ----------------------------------------------------------------
17*0ac9a9daSXin Li
18*0ac9a9daSXin Li
19*0ac9a9daSXin Liusage() {
20*0ac9a9daSXin Li  echo '';
21*0ac9a9daSXin Li  echo 'Usage: xmlproc.sh -[option] <filename.xml>';
22*0ac9a9daSXin Li  echo 'Specify a target from:';
23*0ac9a9daSXin Li  echo '-v      verify xml file conforms to dtd';
24*0ac9a9daSXin Li  echo '-html   output in html format (single file)';
25*0ac9a9daSXin Li  echo '-ps     output in postscript format';
26*0ac9a9daSXin Li  echo '-pdf    output in pdf format';
27*0ac9a9daSXin Li  exit;
28*0ac9a9daSXin Li}
29*0ac9a9daSXin Li
30*0ac9a9daSXin Liif test $# -ne 2; then
31*0ac9a9daSXin Li  usage
32*0ac9a9daSXin Lifi
33*0ac9a9daSXin Li# assign the variable for the output type
34*0ac9a9daSXin Liaction=$1; shift
35*0ac9a9daSXin Li# assign the output filename
36*0ac9a9daSXin Lixmlfile=$1; shift
37*0ac9a9daSXin Li# and check user input it correct
38*0ac9a9daSXin Liif !(test -f $xmlfile); then
39*0ac9a9daSXin Li  echo "No such file: $xmlfile";
40*0ac9a9daSXin Li  exit;
41*0ac9a9daSXin Lifi
42*0ac9a9daSXin Li# some other stuff we will use
43*0ac9a9daSXin LiOUT=output
44*0ac9a9daSXin Lixsl_fo=bz-fo.xsl
45*0ac9a9daSXin Lixsl_html=bz-html.xsl
46*0ac9a9daSXin Li
47*0ac9a9daSXin Libasename=$xmlfile
48*0ac9a9daSXin Libasename=${basename//'.xml'/''}
49*0ac9a9daSXin Li
50*0ac9a9daSXin Lifofile="${basename}.fo"
51*0ac9a9daSXin Lihtmlfile="${basename}.html"
52*0ac9a9daSXin Lipdffile="${basename}.pdf"
53*0ac9a9daSXin Lipsfile="${basename}.ps"
54*0ac9a9daSXin Lixmlfmtfile="${basename}.fmt"
55*0ac9a9daSXin Li
56*0ac9a9daSXin Li# first process the xmlfile with CDATA tags
57*0ac9a9daSXin Li./format.pl $xmlfile $xmlfmtfile
58*0ac9a9daSXin Li# so the shell knows where the catalogs live
59*0ac9a9daSXin Liexport XML_CATALOG_FILES=/etc/xml/catalog
60*0ac9a9daSXin Li
61*0ac9a9daSXin Li# post-processing tidy up
62*0ac9a9daSXin Licleanup() {
63*0ac9a9daSXin Li  echo "Cleaning up: $@"
64*0ac9a9daSXin Li  while [ $# != 0 ]
65*0ac9a9daSXin Li  do
66*0ac9a9daSXin Li    arg=$1; shift;
67*0ac9a9daSXin Li    echo "  deleting $arg";
68*0ac9a9daSXin Li    rm $arg
69*0ac9a9daSXin Li  done
70*0ac9a9daSXin Li}
71*0ac9a9daSXin Li
72*0ac9a9daSXin Licase $action in
73*0ac9a9daSXin Li  -v)
74*0ac9a9daSXin Li   flags='--noout --xinclude --noblanks --postvalid'
75*0ac9a9daSXin Li   dtd='--dtdvalid http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd'
76*0ac9a9daSXin Li   xmllint $flags $dtd $xmlfmtfile 2> $OUT
77*0ac9a9daSXin Li   egrep 'error' $OUT
78*0ac9a9daSXin Li   rm $OUT
79*0ac9a9daSXin Li  ;;
80*0ac9a9daSXin Li
81*0ac9a9daSXin Li  -html)
82*0ac9a9daSXin Li   echo "Creating $htmlfile ..."
83*0ac9a9daSXin Li   xsltproc --nonet --xinclude  -o $htmlfile $xsl_html $xmlfmtfile
84*0ac9a9daSXin Li   cleanup $xmlfmtfile
85*0ac9a9daSXin Li  ;;
86*0ac9a9daSXin Li
87*0ac9a9daSXin Li  -pdf)
88*0ac9a9daSXin Li   echo "Creating $pdffile ..."
89*0ac9a9daSXin Li   xsltproc --nonet --xinclude -o $fofile $xsl_fo $xmlfmtfile
90*0ac9a9daSXin Li   pdfxmltex $fofile >$OUT </dev/null
91*0ac9a9daSXin Li   pdfxmltex $fofile >$OUT </dev/null
92*0ac9a9daSXin Li   pdfxmltex $fofile >$OUT </dev/null
93*0ac9a9daSXin Li   cleanup $OUT $xmlfmtfile *.aux *.fo *.log *.out
94*0ac9a9daSXin Li  ;;
95*0ac9a9daSXin Li
96*0ac9a9daSXin Li  -ps)
97*0ac9a9daSXin Li   echo "Creating $psfile ..."
98*0ac9a9daSXin Li   xsltproc --nonet --xinclude -o $fofile $xsl_fo $xmlfmtfile
99*0ac9a9daSXin Li   pdfxmltex $fofile >$OUT </dev/null
100*0ac9a9daSXin Li   pdfxmltex $fofile >$OUT </dev/null
101*0ac9a9daSXin Li   pdfxmltex $fofile >$OUT </dev/null
102*0ac9a9daSXin Li   pdftops $pdffile $psfile
103*0ac9a9daSXin Li   cleanup $OUT $xmlfmtfile $pdffile *.aux *.fo *.log *.out
104*0ac9a9daSXin Li#  passivetex is broken, so we can't go this route yet.
105*0ac9a9daSXin Li#   xmltex $fofile >$OUT </dev/null
106*0ac9a9daSXin Li#   xmltex $fofile >$OUT </dev/null
107*0ac9a9daSXin Li#   xmltex $fofile >$OUT </dev/null
108*0ac9a9daSXin Li#   dvips -R -q -o bzip-manual.ps *.dvi
109*0ac9a9daSXin Li  ;;
110*0ac9a9daSXin Li
111*0ac9a9daSXin Li  *)
112*0ac9a9daSXin Li  usage
113*0ac9a9daSXin Li  ;;
114*0ac9a9daSXin Liesac
115