#! /bin/csh

# lmkheaders - Shell script to automatically generate header files for
# mooring deployments. Templates are parsed for field tags, which are 
# replaced by this script.
# Mooring name, deployment date and one or more instrument names are required parameters:
# e.g., lmkheaders M1 '12 April, 2001 fluor ctd hdas '

# The instrument names should correspond to the .hdt file names

set nonomatch
set oasis = /oasis
set outDir = $oasis/cfg/template
set templateDir = $oasis/cfg/template
set srcDir = $oasis/src

cd $templateDir

if ($#argv > 0) then
if ($argv[1] == "h" || $argv[1] == "H") then
  ls *.hdt|sed -e "s/\(.*\).hdt/\1/"
  exit
endif
endif

if ($#argv < 3) then
  echo "\nUsage: $0 <mooring> <'deployment date'> <all | <instrument> [<instrument>...]>"
  echo "Note: Must use single quotes around date, e.g. 'June 14, 2001'"
  echo "       $0 [h|H] lists .hdt files\n"
  exit
endif

echo Creating Headers for $1, $2
set ilist = $argv[3]

if ($ilist == "all") then
 foreach file (`ls *.hdt`)
  set base = `ls $file|sed -e "s/\(.*\).hdt/\1/"`

  echo "Instrument Description for $base"
  set iname = ($<)
  cat $templateDir/$base.hdt | sed -e "s/<mooring>/$1/" >& $outDir/$base.hd1
  cat $outDir/$base.hd1 | sed -e "s/<deployment_date>/$2/" >& $outDir/$base.hd2
  cat $outDir/$base.hd2 | sed -e "s/<instrument>/$iname/" >& $outDir/$base.hdr
  echo " $base set to $iname\n"
  rm *.hd1
  rm *.hd2
end
else
#initialize
@ i = (3) 
set iname=""
while ($#argv >= $i)
  set file = $argv[$i]
  echo "Instrument Description for $argv[$i]"
  set iname = ($<)

  cat $templateDir/$file.hdt | sed -e "s/<mooring>/$1/" >& $outDir/$file.hd1

  cat $outDir/$file.hd1 | sed -e "s/<deployment_date>/$2/" >& $outDir/$file.hd2

  cat $outDir/$file.hd2 | sed -e "s/<instrument>/$iname/" >& $outDir/$file.hdr
  rm *.hd1
  rm *.hd2

  echo " $argv[$i] set to $iname\n"
  @ i++
end
endif

echo Processing Complete
