#!/bin/sh
#
# BUILD
# Build a set of product scripts for SETUP
#
# Stuart Herbert (S.Herbert@sheffield.ac.uk)
# Academic Computing Services, University of Sheffield
# 
# Copyright (c) 1995.  All rights reserved.
##########################################################################
# Modifications
#
#	2.0	SLH	09 Jul 95	Initial version
##########################################################################

PRODUCT_DIR="./Product"
INDEX_FILE="${PRODUCT_DIR}/INDEX"
OPTION_FILE="${PRODUCT_DIR}/OPTION"
PRODUCT_FILE="${PRODUCT_DIR}/PRODUCT"

##########################################################################
#
function echoline
{
  echo -n "$1 " >> ${PRODUCT_FILE}
  shift
  
  while [ -n "$1" ]; do
    echo -n "\"$1\" " >> ${PRODUCT_FILE}
    shift
  done
  echo >> ${PRODUCT_FILE}
}

##########################################################################
#
function Author ()
{
  echoline Author "$@"
}

##########################################################################
#
function BlankLine ()
{
  echo "BlankLine" >> ${PRODUCT_FILE}
}

##########################################################################
#
function BuildNo ()
{
  if [ -z "$1" ]; then
    echo "*** WARNING - BuildNo must have an argument."
    exit 1
  else
    NewBuildNo=`expr $1 + 1`
  fi
  
  sed "s/BuildNo $1/BuildNo $NewBuildNo/" < ${INDEX_FILE} > ${INDEX_FILE}.tmp
  mv -f ${INDEX_FILE}.tmp ${INDEX_FILE}
  echo "BuildNo $NewBuildNo" >> ${PRODUCT_FILE}
}

##########################################################################
#
function Copyright ()
{
  echoline "Copyright" "$@"
}

##########################################################################
#
# $1 - module filename
# $2 - module type
# $3 - options to include module with
# $4 - module description

function Module ()
{
  local tmpvar
  
  tmpvar="`echo $3 | tr ',' ' '`"
  for x in $tmpvar ; do
    echo "Module \"$1\" \"$2\" \"$4\"" >> ${PRODUCT_DIR}/$x.mod
  done
}

##########################################################################
#
function Option ()
{
  echo "  $1.  $2"	>> ${OPTION_FILE}
  echo "      $3"	>> ${OPTION_FILE}
  echo			>> ${OPTION_FILE}
  
  echo "Product \"$2\" \"$3\""		>  ${PRODUCT_DIR}/$1
  echo ". ${PRODUCT_DIR}/PRODUCT"	>> ${PRODUCT_DIR}/$1
  echo "# Built by BUILD"		>> ${PRODUCT_DIR}/$1.mod
  
  echo "Adding Option $1 - $2"
}

##########################################################################
#
function PreviousRelease ()
{
  echoline "PreviousRelease" "$@"
}

##########################################################################
#
function ReleaseDate ()
{
  local tmpvar
  
  tmpvar="`date`"
  echo "ReleaseDate \"${tmpvar}\"" >> ${PRODUCT_FILE}
}

##########################################################################
#
function Title ()
{
  echoline Title "$@"
}

##########################################################################
#
function Version ()
{
  echoline Version "$@" >> ${PRODUCT_FILE}
}

##########################################################################
# main

function main ()
{
  for x in ${OPTION_FILE} ${PRODUCT_FILE} ${PRODUCT_DIR}/*.mod ; do
    if [ -f $x ]; then
      rm -f $x
    fi
  done

  . ./${INDEX_FILE}
}

main