#!/bin/bash
# RemoteInstantAppScript:makeSerialTemplate
# SubmissionScripts/Distributor/Instant/APP/serial
#
trap cleanup HUP INT QUIT ABRT TERM

cleanup()
{
   pkill -TERM --parent $$
   if [ ! -s @@{TS_FINISH} ] ; then
      date +"%s" > @@{TS_FINISH}
   fi
}

exitStatus=0

@@{USEENVIRONMENT}
@@{ENVIRONMENT}

# Change to directory where job was submitted.
cd @@{WORKINGDIRECTORY}
PATH=@@{WORKINGDIRECTORY}:${PATH}
export PATH

@@{SUBMISSIONSCRIPTCOMMANDS}

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

@@{PREMANAGERCOMMANDS}
TIMEPATH=
if [ -n "@@{TIMEPATHS}" ] ; then
   for timePath in @@{TIMEPATHS} ; do
      if [ -x ${timePath} ] ; then
         TIMEPATH=${timePath}
         break
      fi
   done
fi

if [ -n "${TIMEPATH}" ] ; then
   ${TIMEPATH} --format "Command exited with status %x\nreal %e\nuser %U\nsys %S" -o @@{TIME_RESULTS} \
      @@{MANAGERCOMMAND} @@{EXECUTABLE} @@{ARGUMENTS} < @@{STDIN} &
   wait %1
   exitStatus=$?
else
   { time -p @@{MANAGERCOMMAND} @@{EXECUTABLE} @@{ARGUMENTS} < @@{STDIN} & } \
                 > @@{TIME_RESULTS} 2>&1
   wait %1
   exitStatus=$?
   echo "Command exited with status ${exitStatus}" >> @@{TIME_RESULTS}
fi
@@{POSTMANAGERCOMMANDS}

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

exit ${exitStatus}
