From df9b4eabf52faee6f289a4bc62219684442ae383 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 9 Jan 2014 19:14:09 +0100 Subject: Move all helper scripts to build-aux/ * scripts/: Rename to build-aux/. * compile, config.guess, config.rpath, config.sub * depcomp, doc/mdate-sh, doc/texinfo.tex * install-sh, ltmain.sh, missing: Move to build-aux/. * Makefile.am (EXTRA_DIST): Adjust. * configure.ac (AC_CONFIG_AUX_DIR): New. (AM_SILENT_RULES): New. Signed-off-by: Werner Koch --- build-aux/db2any | 489 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 489 insertions(+) create mode 100755 build-aux/db2any (limited to 'build-aux/db2any') diff --git a/build-aux/db2any b/build-aux/db2any new file mode 100755 index 00000000..a240aaa0 --- /dev/null +++ b/build-aux/db2any @@ -0,0 +1,489 @@ +#!/bin/sh +# db2any - Docbook to html/ps/info rendering +# +# Copyright (C) 2000, 2001 Free Software Foundation, Inc +# +# This 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 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; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA +# +# Note: This requires a Posix shell +# +# $Id$ + +pgm="db2any" +version="0.7.3" + +usage () { + echo 'usage: db2any [--help] [options] filename' >&2 + exit 1 +} + +show_banner () { + cat <&2 + exit 1 + fi + mode="$1" + ;; + --manvolume) + shift + if [ $# = 0 ]; then + echo "$pgm: missing argument for --manvolume" >&2 + exit 1 + fi + manvolume="$1" + ;; + --usestyle) + shift + if [ $# = 0 ]; then + echo "$pgm: missing argument for --usestyle" >&2 + exit 1 + fi + usestyle="$1" + ;; + --verbose) + verbose=yes + ;; + --draft) + draft=yes + ;; + --ignore-xref) + ignore_xref=yes + ;; + --) + shift + break + ;; + *) + echo "$pgm: invalid option $1" >&2 + exit 1 + ;; + esac + shift +done + +if [ $# = $expected_args ]; then + if [ $# = 1 ]; then + input="$1" + fi +else + usage +fi + +# check the mode +case "$mode" in + html|HTML) + mode=html + ;; + tex|TEX|TeX|dvi) + mode=dvi + ;; + man|MAN) + mode=man + ;; + texi|TEXI|texinfo|TEXINFO) + mode=texinfo + ;; + check) + ;; + none) + if [ $systemcheck_only != yes ]; then + echo "$pgm: no mode specified; use one of: ${all_modes}" >&2 + exit 1 + fi + ;; + *) + echo "$pgm: invalid mode $mode" >&2 + echo "$pgm: valid modes are: ${all_modes}" >&2 + exit 1 + ;; +esac + +if [ -n $usestyle ]; then + if [ ! -f $usestyle ]; then + echo "$pgm: cannot access local stylesteet" >&2 + exit 1 + fi +fi + +####################################### +# Options are all parsed here # +####################################### + +# check whether the given program is availbale in the path +check_prog () { + tmp="$1" + save_ifs="$IFS"; IFS=":" + for i in $PATH; do + test -z "$i" && i=. + if test -f $i/$tmp; then + IFS="$save_ifs" + return 0 + fi + done + IFS="$save_ifs" + return 1 +} + + +# Figure out all what we need to know about the system we are +# running on and where the Docbook tools are installed. +# Tell about it when running in verbose mode. +do_systemcheck () { + # look for Jade + jade_version=`jade -v &1 | \ + sed -n 's/.*:I:.*Jade version "\([0-9.]*\)"/\1/p'` + if [ -z "$jade_version" ]; then + echo "$pgm: error: jade not found" >&2 + exit 1 + fi + [ $verbose = yes ] && echo "$pgm: Jade version $jade_version found" >&2 + + # look for JadeTeX + if ! jadetex -v 2>/dev/null | grep -q '^TeX' ; then + echo "$pgm: error: jadetex not found" >&2 + exit 1 + fi + + # look for the docbook-to-man script. Fixme: we should check that it + # it is a recent version. + if ! docbook-to-man 2>&1 | grep -q '^usage' ; then + echo "$pgm: error: docbook-to-man not found" >&2 + exit 1 + fi + [ $verbose = yes ] && echo "$pgm: docbook-to-man found" >&2 + + # look for the docbook-to-texi scripts. + if ! check_prog docbook2texi ; then + echo "$pgm: error: docbook2texi not found" >&2 + exit 1 + fi + [ $verbose = yes ] && echo "$pgm: docbook2texi found" >&2 + if ! sgml2xml -v /dev/null 2>&1 | grep 'SP version' >/dev/null 2>&1 ; then + echo "$pgm: error: sgml2xml not found" >&2 + exit 1 + fi + [ $verbose = yes ] && echo "$pgm: sgml2xml found" >&2 + + # figure out where our stylesheets are + tex_stylesheet=none + for d in ${stylesheet_dirs}; do + file=${d}/print/docbook.dsl + if [ -f $file ]; then + tex_stylesheet=$file + break + fi + done + [ $verbose = yes ] && echo "$pgm: TeX stylesheet: ${tex_stylesheet}" >&2 + html_stylesheet=none + for d in ${stylesheet_dirs}; do + file=${d}/html/docbook.dsl + if [ -f $file ]; then + html_stylesheet=$file + break + fi + done + [ $verbose = yes ] && echo "$pgm: HTML stylesheet: ${html_stylesheet}" >&2 + if [ $tex_stylesheet = none -o $html_stylesheet = none ]; then + echo "$pgm: error: stylesheets not found" >&2 + exit 1 + fi + +} + + +# Render the docbook as HTML +render_html () { + output="`basename $input| sed 's/\.sgml$//'`.html" + + if [ -n "$usestyle" ]; then + tmpstyle="`pwd`/`basename $usestyle`-html.tmp" + if [ ! -f $tmpstyle -o $usestyle -nt $tmpstyle ]; then + sed "s%@DOCBOOK_DSL@%$html_stylesheet%" $usestyle > $tmpstyle + fi + else + tmpstyle="$tex_stylesheet" + fi + + + # --nosplts creates just one HTML file + if test $nosplit = yes; then + echo "running jade on '$input' ..." >&2 + jade -D . -d $tmpstyle -t sgml -i html -V nochunks $input > $output + echo "$output created" + return 0 + fi + + # Make sure that we have a html subdir + if test -d html ; then + : + else + if mkdir html; then + echo "'html' directory created" >&2 + else + echo "failed to create 'html' directory" >&2 + exit 1 + fi + fi + + outputdir="html/`basename $input| sed 's/\.sgml$//'`" + + if test -d $outputdir ; then + : + else + if mkdir $outputdir; then + echo "'$outputdir' created" >&2 + else + echo "failed to create '$outputdir'" >&2 + exit 1 + fi + fi + echo "creating html pages in '$outputdir' ..." >&2 + if test "$input" = "`basename $input`"; then + inp="../../$input" + else + inp="$input" + fi + + [ $verbose = yes ] && echo "running jade on '$inp' ..." >&2 + (cd $outputdir && jade -D . -t sgml -i html -d $tmpstyle $inp ) + [ $verbose = yes ] && echo "html version in '$outputdir' created" >&2 + + # break out all filerefs and copy them to the outputdirectory + # fixme: handling of path components is wrong + if test $copyfiles = yes; then + echo "looking for filerefs ..." >&2 + for file in `nsgmls -i html $input \ + | awk '/^AFILEREF[ \t]+CDATA/ {print $3}'`; do + d=$outputdir/`basename $file` + if cat $file > $outputdir/`basename $file` ; then + echo " $file -> $d" >&2 + fi + done + fi + + mainfile=`ls $outputdir/${doctype}* | head -1` + + # create a html index file for it, so that we can more easy + # find the rendred pages + cat > $output <$output + + +$mainfile + + + +EOF + + [ $verbose = yes ] && echo "$output created with link to '$mainfile'" >&2 +} + + +# This function expects the source file in $texfile and +# the name of the logfle in $logfile +run_jadetex () { + [ -f $logfile ] && rm $logfile + jadetex $texfile + if ! tail $logfile | grep -q '^Output written on'; then + echo "JadeTeX failed" >&2 + exit 1 + fi +} + +# Render the docbook to DVI +render_dvi () { + output="`basename $input| sed 's/\.sgml$//'`.dvi" + texfile="`basename $input| sed 's/\.sgml$//'`.tex" + logfile="`basename $input| sed 's/\.sgml$//'`.log" + auxfile="`basename $input| sed 's/\.sgml$//'`.aux" + + if [ -n "$usestyle" ]; then + tmpstyle="`basename $usestyle`-tex.tmp" + if [ ! -f $tmpstyle -o $usestyle -nt $tmpstyle ]; then + sed "s%@DOCBOOK_DSL@%$tex_stylesheet%" $usestyle > $tmpstyle + fi + else + tmpstyle="$tex_stylesheet" + fi + [ $verbose = yes ] && echo "running jade on '$input' ..." >&2 + jade -D . -t tex -i tex -d $tmpstyle -o $texfile $input + if ! tail $texfile | grep -q '\\endFOT{}'; then + echo "Jade failed" >&2 + exit 1 + fi + + # Better delete the aux file first + [ -f $auxfile ] && rm $auxfile + # The first run won't get the references right, so we have to + # run it 2 or 3 times. JadeTex doesn't indicate whether a third + # run is required, so we do it always. + run_jadetex + if [ $draft = no ]; then + if tail -100 $logfile \ + | grep -q '^LaTeX Warning: There were undefined references'; then + echo 'running JadeTeX a second and third 2time' >&2 + run_jadetex + run_jadetex + fi + fi + + [ $verbose = yes ] && echo "$output created as '$output'" >&2 +} + +# Render the docbook to troff +render_man () { + output="`basename $input| sed 's/\.sgml$//'`.$manvolume" + + [ $verbose = yes ] && echo "running docbook-to-man on '$input' ..." >&2 + docbook-to-man $input > $output + [ $verbose = yes ] && echo "man page '$output' created" >&2 +} + +# Render the docbook to texinfo +render_texinfo () { + output="`basename $input| sed 's/\.sgml$/.texi/'`" + tmpxml="`basename $input| sed 's/\.sgml$/.xml/'`" + + [ $verbose = yes ] && echo "running sgml2xml on '$input' ..." >&2 + sgml2xml -x lower $input > $tmpxml + [ $verbose = yes ] && echo "running docbook2texi on '$tmpxml' ..." >&2 + docbook2texi $tmpxml | sed 's,--,---,' >$output + rm $tmpxml + [ $verbose = yes ] && echo "texinfo '$output' created" >&2 + +} + +####################################### +# main function # +####################################### + +do_systemcheck +[ $systemcheck_only = yes ] && exit 0 + +if [ ! -f "$input" ]; then + input="$input.sgml" + if [ ! -f "$input" ]; then + echo "$pgm: '$input': no such file" >&2 + exit 1 + fi +fi + +# grep the document type +doctype=`grep -i '\&2 + exit 1 +fi +[ $verbose = yes ] && echo "$input: DOCTYPE is '$doctype'" >&2 + +case $mode in + check) + nsgmls -vs $input + exit $? + ;; + html) + render_html + ;; + dvi) + render_dvi + ;; + man) + render_man + ;; + texinfo) + render_texinfo + ;; +esac + + +exit 0 -- cgit v1.2.1