#!/bin/csh -f

#------------------------------------------------------------------
# Copy files to the local mass store
# "Usage ccsm_mswrite [locdir/]file1 mssdir/[file2] "
#    rdf = remote dir/filename
#    ldf = local  dir/filename
#    rd  = remote dir
#    rf  = remote filename
#    ld  = local  dir
#    lf  = local  filename
#------------------------------------------------------------------

#------------------------------------------------------------------
# Check for 2 arguments
#------------------------------------------------------------------
if ("$#argv" == 2) then
  set ldf = $argv[1]
  set rdf = $argv[2]
else
  echo "Usage ccsm_mswrite [locdir/]file1 mssdir/[file2] "
  exit 1
endif

#------------------------------------------------------------------
# Split inputs into r(remote) and l(local) d(directories) and f(files)
# If the remote file is empty, set it to the local filename
#------------------------------------------------------------------
set ld = `$UTILROOT/Tools/ccsm_splitdf -d ${ldf}`
set lf = `$UTILROOT/Tools/ccsm_splitdf -f ${ldf}`
set rd = `$UTILROOT/Tools/ccsm_splitdf -d ${rdf}`
set rf = `$UTILROOT/Tools/ccsm_splitdf -f ${rdf}`
if (${rf} == "") set rf = $lf

#------------------------------------------------------------------
# Execute site dependent mass store write
#------------------------------------------------------------------

# If NAS pleiades at NASA/AMES
if( ${MACH} == "pleiades" | ${MACH} == "pleiades_wes" ) then
  set myld = `pwd`
  echo "ccsm_mswrite: ssh -q bridge2 scp -q ${myld}/${lf} lou:${rdf} "
  ssh -q bridge2 "scp -q ${myld}/${lf} lou:${rdf}"

  sleep 5

  echo "$UTILROOT/Tools/ccsm_msread ${rdf} checkmssfile"
  $UTILROOT/Tools/ccsm_msread ${rdf} checkmssfile
  if (-e checkmssfile) then
    echo "cmp -s ${myld}/${lf} checkmssfile"
    cmp -s ${myld}/${lf} checkmssfile
    if ($status == 0) then
       echo rm ${myld}/${lf}
       rm -f ${myld}/${lf}
       rm -f checkmssfile
    else
       echo archiving FAILED for file ${myld}/${lf}
    endif
  endif

  exit
endif


# If  hsi command exists, use it.
if (`which hsi | wc -w` == 1 ) then
  if ($DOUT_L_HPSS_ACCNT !~ 0000*) then
    set opts = " -a $DOUT_L_HPSS_ACCNT "
  else
    set opts = " "
  endif
  echo "ccsm_mswrite: hsi ${opts} 'cd ${rd} ; put -d ${ldf} : ${rf}'"
  hsi ${opts} -q "cd ${rd} ; put -d ${ldf} : ${rf} ; chmod +r ${rf}"
  exit $status
endif

# If LANL psi command exists, use it.
if (`which psi | wc -w` == 1 ) then
  echo "ccsm_mswrite: psi put ${ldf} ${rdf}"
  psi put "$ldf ${rdf}"
  exit $status
endif

# If PSC far command exists, use it.
if (`which far | wc -w` == 1 ) then
  echo "ccsm_mswrite: far store ${ldf} ${rdf}"
  far store ${ldf} ${rdf}
  exit $status
endif

exit
