#!/bin/bash
#
# Startscript fr PWR av Ulf Ljungdahl
#


#test -x /sbin/ipchains || exit 0
#test -x /sbin/ipchains-restore || exit 0
#test -x /sbin/ipchains-save || exit 0

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

. /etc/pwrp_profile


save ()
  {
    echo -n "Saving IP chains: "
    TEMPFILE="`tempfile`"
    echo "${SAVEFILEHEADER}" >"${TEMPFILE}" && /sbin/ipchains-save >>"${TEMPFILE}" 2>/dev/null
    cat "${TEMPFILE}" >/etc/ipchains.save
    rm "${TEMPFILE}"
  }

pwr_start()
{
  $pwr_exe/rt_ini &
  sleep 5 
  /usr/sbin/setrtprio `ps ax | grep "plc" | grep -v "grep" | awk '{ print $1}'`
}

pwr_stop()
{
  kill -9 `ps ax | grep "rt_neth_acp" | awk '{ print $1}'`
  kill -9 `ps ax | grep "rt_neth" | awk '{ print $1}'`
  kill -9 `ps ax | grep "rt_qmon" | awk '{ print $1}'`
  kill -9 `ps ax | grep "rt_emon" | awk '{ print $1}'`
  kill -9 `ps ax | grep "rt_tmon" | awk '{ print $1}'`
  kill -9 `ps ax | grep "rt_\|/pwr/exe/rs" | awk '{ print $1}'`
  kill -9 `ps ax | grep "\[rt_" | awk '{ print $1}'`
  kill -9 `ps ax | grep "plc_" | awk '{ print $1}'`
  kill -9 `ps ax | grep "jpwr.rt" | awk '{ print $1}'`
  kill -9 `ps ax | grep "rs_nmps" | awk '{ print $1}'`
  kill -9 `ps ax | grep "rs_remote" | awk '{ print $1}'`
  if [ -u $pwr_exe/rt_ini ]; then
    user=`ls -al $pwr_exe/rt_ini | awk '{ print $3}'`
  else
    user=$USER
  fi

  echo "User $user"

  eval `ipcs -s|grep ^0x|grep "[ \t]$user[ \t]"|awk '{printf "ipcrm sem %s;", $2
}'`

# remove message queues
  eval `ipcs -q|grep ^0x|grep "[ \t]$user[ \t]"|awk '{printf "ipcrm msg %s;", $2
}'`

# remove shared memory
  eval `ipcs -m|grep ^0x|grep "[ \t]$user[ \t]"|awk '{printf "ipcrm shm %s;", $2
}'`

  if [ -e $pwrp_exe/pwrp_stop.sh ]; then
    source $pwrp_exe/pwrp_stop.sh
  fi

  rm /tmp/pwr*$PWR_BUS_ID
  
  #rm -f /tmp/pwr*
  #id=`ipcs -s | grep $user | awk '{print $2}'`
  #id1=`echo $id | awk '{print $1}'`
  #id2=`echo $id | awk '{print $2}'`
  #id3=`echo $id | awk '{print $3}'`
  #ipcrm sem $id1
  #ipcrm sem $id2
  #ipcrm sem $id3
  #id=`ipcs -q | grep $user | awk '{print $2}'`
  #id1=`echo $id | awk '{print $1}'`
  #id2=`echo $id | awk '{print $2}'`
  #id3=`echo $id | awk '{print $3}'`
  #ipcrm msg $id1
  #ipcrm msg $id2
  #ipcrm msg $id3
}

case "$1"
  in
    start)
	echo "Startar PWR..."
	
	#if [ 'test -x ps aux | grep plc | grep -v grep' ]
	#  then
	#    echo "PWR kr, stoppar det frst.."
	#    pwr_stop
	#  fi
	pwr_start    
	echo "Klar."
      ;;
    stop)
	echo "Stoppar PWR..."
	pwr_stop
	
 #     if [ "${SAVEONCE}" != "yes" ]
 #       then
#	  save
#          echo -n "ipchains-save"
#	else
#	  echo -n "Clearing IP chains:"
#	fi   	   
	echo "Klar"
      ;;
    restart)
	echo "Startar om PWR."
	echo "Stoppar det frst."
	pwr_stop
	sleep 1
	echo "Startar igen."
	pwr_start
	echo "Klar."
	;;
    *)
	echo "Usage:{start|stop|restart}" >&2
	#echo "Ingen parameter angiven, startar PWR"
	#$0 start
        exit 1
	;;
  esac

exit 0
