Linuxdoc Linux Questions
Click here to ask our community of linux experts!
Custom Search

A. How is this document generated

So you want to know how I generated this HOWTO? Or, did you download SGML version of this document, modified some portions in it and now want to know how you can create HOWTO?

I made sure there are no errors in my SGML by first typing the command nsgmls -s ataraid.sgml. I created a script called makehowto and ran the command ./makehowto ataraid.sgml. Here is the my makehowto script:

#!/bin/bash
#
# makehowto by Murty Rompalli
# (c) All Rights Reserved
# Free for non commercial use. All other uses must be authorized explicitly
# by the creator. Contact me for more info. murty@solar.m u r t y.net
#

function maketut() {
echo;echo Creating Tutorial Files ...
jade \
    -t sgml \
    -d /usr/lib/sgml/stylesheets/nwalsh-modular/html/ldp.dsl\#html \
    $1.sgml 
}

function makehtml {
echo;echo Creating html file: $1.html ...
jade \
    -t sgml \
    -d /usr/lib/sgml/stylesheets/nwalsh-modular/html/docbook.dsl \
    -V nochunks \
    $1.sgml > $1.html 
}

function maketxt {
        if [ -f $1.html ]
        then
                echo;echo Creating text file: $1.txt ...
                lynx -dump $1.html > $1.txt
        else
                echo;echo $1.html not found, creating ...
                makehtml $1
                maketxt $1
        fi
}

function makepdf {
        [ -f $1.ps ] && gzip $1.ps

        if [ -f $1.ps.gz ]
        then
                echo;echo Creating pdf file: $1.pdf ...
                gzip -dc $1.ps.gz | 
                gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$1.pdf -
        else
                echo;echo $1.ps.gz not found creating ...
                makeps $1
                makepdf $1
        fi
}

function maketex {
echo;echo Creating TeX file $1.tex ... 
jade \
    -t tex \
    -d /usr/lib/sgml/stylesheets/cygnus-both.dsl\#print \
    $1.sgml
gzip $1.tex
echo $1.tex gzipped to $1.tex.gz
}

function makedvi {
echo;echo Creating DVI file $1.dvi ...
db2dvi $1.sgml  >/dev/null 2>&1
echo See $1.log for errors
gzip $1.dvi
echo $1.dvi gzipped to $1.dvi.gz
}

function makeps {
echo;echo Creating PS file $1.ps ...
db2ps $1.sgml  >/dev/null 2>&1
echo See $1.log for errors
gzip $1.ps
echo $1.ps gzipped to $1.ps.gz
}

#### Begin Main Program

echo "
makehowto utility for generating HOWTO from SGML file.
(c) Murty Rompalli
"

[ x$1 = x ] && 
echo "Error. Usage: $0 abc.sgml '{tut|html|pdf|tex|dvi|ps|all}'

Option 'all' is default if sgml file is the only option supplied.

Options:
-------
tut     Make complete tutorial, i.e., generate necessary html files
html    Make a printable single HTML file
pdf     Make a PDF file
tex     Make a TeX source file, gzipped
dvi     Make a DVI file, gzipped
ps      Make a PostScript file, gzipped
all     Generate all possible formats.

" && exit

file="`echo $1|sed 's/\.sgml$//'`"

[ x$file = x ] && 
echo Error. Usage: $0 abc.sgml '{tut|html|tex|dvi|ps|all}' && exit

[ -f $file.sgml ] || {
echo Error. $file.sgml does not exist
exit
}

[ -r $file.sgml ] || {
echo Error. $file.sgml not readable
exit
}


if [ x$2 = x ]
then
        action=all
else
        action=$2
fi 


case $action in
tut|tutorial) maketut $file  
                ;;
html|htm) makehtml $file  
                ;;
tex|latex) maketex $file 
                ;;
dvi) makedvi $file 
                ;;
ps) makeps $file 
                ;;
text|txt) maketxt $file
                ;;
pdf) makepdf $file
                ;;
all)    maketut $file  
        makehtml $file  
        maketex $file  
        makedvi $file
        makeps $file
        maketxt $file
        makepdf $file
        ;;
*) echo error 
        ;;
esac

\rm -f $file.aux
\rm -f $file.tex
\rm -f $file.dvi

echo;echo makehowto: Finished
echo You can review $file.log and delete it.
echo Thank you for using makehowto.
echo

You can also just type ./makehowto ataraid.sgml pdf, for example, if you just want create PDF version. Just type ./makehowto to get more help on using the script. Click here to download this makehowto script.