#!/bin/sh
# RemoteWorkflowPEGASUS:makeWorkflowTemplate
# SubmissionScripts/Distributor/Workflow/PEGASUS/plan
#
exitStatus=0

mkdir -p @@{INSTANCEDIRECTORY}/work
mkdir -p @@{SCRATCHDIRECTORY}/work
mkdir -p @@{INSTANCEDIRECTORY}/InProcessResults

cat > @@{INSTANCEDIRECTORY}/work/pegasusSetup.sh << EOF
. @@{USESETUP}
use -e -r pegasus-@@{PEGASUSVERSION}
EOF
. @@{INSTANCEDIRECTORY}/work/pegasusSetup.sh

TIMEPATH=
for timePath in /bin/time /usr/bin/time /usr/local/bin/time ; do
   if [ -x ${timePath} ] ; then
      TIMEPATH=${timePath}
      break
   fi
done

#Discarded Arguments      = @@{DISCARDED}
#Not Recognized Arguments = @@{NOTRECOGNIZED}

export LANG=en_US.UTF-8

date +"%s" > @@{TS_START}

@@{PREMANAGERCOMMANDS}
${TIMEPATH} --format "Command exited with status %x\nreal %e\nuser %U\nsys %S" -o @@{TIME_RESULTS} \
             @@{EXECUTABLE} --conf @@{INSTANCEDIRECTORY}/@@{JOBID}.pegasusrc \
             --sites @@{GRIDSITE} \
             --dir @@{SCRATCHDIRECTORY} \
             --relative-dir scratch \
             --relative-submit-dir work \
             --output-site local \
             @@{ARGUMENTS} --submit \
             @@{DAX} < /dev/null
exitStatus=$?
@@{POSTMANAGERCOMMANDS}

if [ ${exitStatus} -eq 0 ] ; then
   dagmanPath=$(which pegasus-dagman)
   clusterId=$(condor_q -constraint "Iwd=?=\"@@{SCRATCHDIRECTORY}/work\"" \
                        -constraint "Cmd=?=\"${dagmanPath}\"" -autoformat ClusterId)
   if [ -n "${clusterId}" ] ; then
      echo "cluster ${clusterId}"
   fi
fi

date +"%s" > @@{TS_FINISH}

exit ${exitStatus}
