#!/bin/sh

# Programm command and lock file
pCmd="./openscada --CoreDumpAllow --Config=$(pwd)/../etc/oscada_demo.xml"
pLock=".demo.lock"

# Check for already started programm present
if [ -f $pLock ] && ps -Ao pid,command | grep "$(cat ${pLock})[ ]*${pCmd}" > /dev/null; then
    echo "OpenSCADA demo-station already started!";
    exit 1;
fi

# Call programm
$pCmd $@ &
pPid=$!

# Create lock file
echo $pPid > $pLock

# Wait for programm stop
wait $pPid
echo "Program rezult: $?"

# Core dump file "core" into work directory process
if [ -n "$(which gdb 2> /dev/null)" ]; then
    pCmd="$(pwd)/openscada"
    cd ../share/openscada/
    for fit in `ls core* 2> /dev/null`; do
	echo "Core dump process for back trace purchase to file AGLKS_${fit}_$(date +%F_%H.%M).crash"
	gdb $pCmd --core ${fit} --batch --quiet -ex "thread apply all bt full" -ex "quit" > AGLKS_${fit}_$(date +%F_%H.%M).crash
	rm -f ${fit}
    done
fi

# Remove lock file
rm -f $pLock
