#!/bin/bash
# RemoteInstantAppScript:makeMPINoRankTemplate
# SubmissionScripts/Distributor/Instant/APP/mpinorank
#
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}

@@{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} 2>&1
      echo "Command exited with status $?" >> @@{TIME_RESULTS}
   else
      { time -p @@{EXECUTABLE} \"$@\" < @@{STDIN} ; } \
                    > @@{TIME_RESULTS} 2>&1
      echo "Command exited with status $?" >> @@{TIME_RESULTS}
   fi
fi
