#! /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 outDir = /oasis/cfg/template
set templateDir = /oasis/cfg/template
set srcDir = /oasis/src


#set dfltHdrs = ( adcp ctd error fluor gf gps hs2 isus metsys oasis pco2 shutter0 specprr specprr.volts tstring )
#cd /oasis/cfg/template
# foreach file (`ls *.hdt`)

#  set base = `ls $file|sed -e "s/\(.*\).hdt/\1/"`

#  set desc = `grep $base default.hdd | sed -e "s/$base\(.*\)/\1/"`
#  echo "$base $desc \n"
# end
#exit

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 "       $0 [h|H] lists .hdt files\n"
  exit
endif

echo Creating Headers for $1, $2

if ($argv[3] == "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.hdr
  cat $outDir/$base.hdr|sed -e "s/<deployment_date>/$2/" >& $outDir/$base.hdr
  cat $outDir/$base.hdr|sed -e "s/<instrument>/$iname/" >& $outDir/$base.hdr
  echo " $base set to $iname\n"
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.hdr
  cat $outDir/$file.hdr|sed -e "s/<deployment_date>/$2/" >& $outDir/$file.hdr
  cat $outDir/$file.hdr|sed -e "s/<instrument>/$iname/" >& $outDir/$file.hdr
  echo " $argv[$i] set to $iname\n"
  @ i++

endif

echo Processing Complete
