#!/bin/sh
# RemoteBatchAppScript:makeSerialPackingTemplate
# SubmissionScripts/Distributor/Batch/APP/serialpacking
#
trap cleanup HUP INT QUIT ABRT TERM

cleanup()
{
   echo "Abnormal termination by signal"
   if [ ! -s @@{TS_FINISH} ] ; then
      date +"%s" > @@{TS_FINISH}
   fi
   exit 1
}

touch @@{JOBID}_@@{INSTANCEID}_output.tar.gz
rm -f @@{JOBID}_@@{INSTANCEID}_output.tar

JOB_DIRECTORY=`date "+%s"`_@@{JOBID}_@@{INSTANCEID}
mkdir ${JOB_DIRECTORY}
cd ${JOB_DIRECTORY}

CURDIR=`pwd`
export PATH=${CURDIR}:${PATH}

touch .__fileTimeMarker
sleep 1

tar xfz ../@@{JOBID}_@@{INSTANCEID}_input.tar.gz

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

@@{USEENVIRONMENT}
@@{ENVIRONMENT}

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

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

@@{PREMANAGERCOMMANDS}
${TIMEPATH} --format "Command exited with status %x\nreal %e\nuser %U\nsys %S" -o @@{TIME_RESULTS} \
   @@{MANAGERCOMMAND} @@{EXECUTABLE} @@{ARGUMENTS} < @@{STDIN} > @@{RUNNAME}_@@{INSTANCEID}.stdout 2> @@{RUNNAME}_@@{INSTANCEID}.stderr
@@{POSTMANAGERCOMMANDS}

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

# Allow for file/directory names with embedded spaces.
find . -newer .__fileTimeMarker -not -name . -not -iname '*hub-proxy.*' -print0 | \
   xargs --null --no-run-if-empty tar rf ../@@{JOBID}_@@{INSTANCEID}_output.tar --no-recursion
if [ -f ../@@{JOBID}_@@{INSTANCEID}_output.tar ] ; then
   gzip --force ../@@{JOBID}_@@{INSTANCEID}_output.tar
fi

cd ..
rm -rf ${JOB_DIRECTORY}
