#!/bin/bash
# RemoteBatchAppScript:makeMPINoRankPackingTemplate
# SubmissionScripts/Distributor/Batch/APP/mpinorankpacking
#
SCRIPT=`basename $0`
WORKINGDIR=`dirname $0`

args=( "$@" )
for (( i1=0 ; i1 < ${#args[@]} ; i1++ )) ; do
   if   [ "${args[i1]}" = "-p4pg" ] ; then
      p4rank=0
   elif [ "${args[i1]}" = "-p4wd" ] ; then
      (( i1++ ))
      args[${i1}]=${WORKINGDIR}
   elif [ "${args[i1]}" = "-p4rmrank" ] ; then
      (( i1++ ))
      p4rank=${args[i1]}
   fi
done
if [ "${p4rank}" = "0" ] ; then
   set -- ${args[@]}
fi

cd ${WORKINGDIR}

tar xfz @@{JOBID}_input.tar.gz
touch @@{JOBID}_output.tar.gz
rm -f @@{JOBID}_output.tar
touch .__fileTimeMarker
sleep 1

@@{USEENVIRONMENT}
@@{ENVIRONMENT}

rankExtension=`printf "%06d" ${p4rank}`
TIMEPATH=
if [ -n "@@{TIMEPATHS}" ] ; then
   for timePath in @@{TIMEPATHS} ; do
      if [ -x ${timePath} ] ; then
         TIMEPATH=${timePath}
         break
      fi
   done
fi

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

# 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}_output.tar.gz --no-recursion
if [ -f @@{JOBID}_@@{INSTANCEID}_output.tar ] ; then
   gzip --force @@{JOBID}_@@{INSTANCEID}_output.tar
fi
