Listing 4       build

#! /bin/bash -
#  FILENAME: build
#  This script builds an html file putting standard headers and footers around
#  a raw html-formatted file. Two languages are supported (English and
#  national) for html file publication.
#  For variable definition see setvar file.
#
# Luca Salvadori <lsalvadori@batman.laben.it> 1996
#
# Setting global environment variables
. setvar
DEFFILE='*.htm'
#
# Parsing input arguments
#
# Help routine
case $1 in
        -h|-H|--help)
                echo "Usage: build [file [lang]]"
                echo "Where file is the file(s) to build, lang is the
language to use."
                exit;;
        "")
                echo -n "Enter file to build (default=*.htm): "
                read FILE
                FILE=${FILE:-${DEFFILE}}
                ;;
        *)
                FILE=$1
                ;;
esac
# Selecting languages
case $2 in
        "")
                echo -n "Enter language (default=$BASE_LANG): "
                read LANG
                LANG=${LANG:-$BASE_LANG}
                ;;
        *)
                LANG=$2
                ;;
esac
# Parsing languages
case $LANG in
        $BASE_LANG|$OTHER_LANG)
        ;;
        *)
                echo "ERROR - Language \"$LANG\" is not supported"
                exit 1
        ;;
esac
# here begins the real stuff
for file in ${FILE}
do
        if [ ! -f ${file} ]
        then
                echo "ERROR - $file does not exist."
                exit 1
        fi
        # Saving original file, just in case...
        mv $file $file.$$
        echo -n "Building $file... "
        # Building final file by appending header, raw file and footer.
        cat \
        $BASEDIR/models/top_$LANG.htm \
        $file.$$ \
        $BASEDIR/models/bot_$LANG.htm \
        >> $file
        # Cleanup before exiting
        rm $file.$$
        echo "Done."
done
exit


