#!/bin/bash

ABSOLUTE_ME="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")"
if [ "$EUID" -ne 0 ]; then
    sudo $ABSOLUTE_ME "$@"
    SUDO_RET="$?"
    exit $SUDO_RET
fi

PROCESSNAMES=$@
if [ "$PROCESSNAMES" == "" ]; then
    echo "no process name provided. abort."
    exit 1
fi

GF_ROOT=/opt/grassfish
GF_CACHE=${GF_ROOT}/cache
TODAY=`date +%Y%m%d`
TARGET=${GF_CACHE}/trace-sessions/${TODAY}

if [ ! -d $TARGET ]; then
    mkdir -p $TARGET
fi

for PROCESSNAME in $PROCESSNAMES; do
    BINPATH=$PROCESSNAME
    if [ "$PROCESSNAME" == "QtWebEngineProcess" ]; then
        BINPATH=`readlink -f /opt/grassfish/tools/current/gfPlayer/QtWebEngineProcess`
    fi
    PIDS=`pidof -o %PPID $BINPATH`
    for PID in $PIDS; do
        echo "Writing profiling info to ${TARGET}/${PROCESSNAME}.strace"
        strace -s 200 -ff -tt -y -p $PID -o ${TARGET}/${PROCESSNAME}.strace &
    done
done

wait $(jobs -p)
