#!/bin/sh
# 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

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

@@{USEENVIRONMENT}
@@{ENVIRONMENT}

rankExtension=`printf "%06d" ${p4rank}`
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

# 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
