#!/bin/sh

# Use for core dump creation on programm crash
ulimit -c unlimited

# User directory prepare
if [ ! -d ~/.openscada ]; then mkdir -m 700 ~/.openscada; fi
if [ ! -d ~/.openscada/ARCHIVES ]; then
    mkdir -pm 700 ~/.openscada/ARCHIVES/MESS;
    mkdir -pm 700 ~/.openscada/ARCHIVES/VAL;
fi
if [ ! -L ~/.openscada/icons ]; then ln -s /var/spool/openscada/icons ~/.openscada/icons; fi
if [ ! -d ~/.openscada/LibsDB ]; then cp -R /var/spool/openscada/LibsDB ~/.openscada/; fi
if [ ! -d ~/.openscada/AGLKS ]; then cp -R /var/spool/openscada/AGLKS ~/.openscada/; fi
if [ ! -e ~/.openscada/oscada_AGLKS.xml ]; then cp /etc/oscada_AGLKS.xml ~/.openscada/; fi
cd ~/.openscada

# Programm command and lock file
pCmd="openscada --Config=./oscada_AGLKS.xml"
pLock=".AGLKS.lock"

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

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

# Create lock file
echo $pPid > $pLock

# Wait for programm stop
wait $pPid
echo "Programm result: $?"

# Remove lock file
rm -f $pLock
