#!/bin/bash
# Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
#
# Tracks the peak resident memory being used by running the supplied command.
# The output is written to the first argument of the script every second.

function Logger() {
  output="$1"
  while sleep 1
  do
    grep "VmHWM\|Threads" /proc/$pid/status >> $output
  done
}

function Exit {
  kill $lid
  exit $code
}

function Kill {
  kill $lid
  kill -9 $pid
  exit -1
}

if [ $# -lt 2 ]; then
   echo "Takes at least two arguments"
   exit 1
fi
OUTPUT_FILE=$1
shift 1

$* &
pid=$!

Logger $OUTPUT_FILE &
lid=$!

trap "Exit" EXIT
trap "Kill" SIGINT
wait $pid
code=$?
