#!/bin/ash
# Simple Autostart helper
NACPATH=/usr/sbin
NAC_LOG_FILE=/var/log/nac.log
NAC=${NACPATH}/naconnector
#export LUA_PATH="${LUAPATH}/?.lua;"
export LUA_CPATH="/usr/lib64/?.so"
export LD_LIBRARY_PATH=/lib64:/usr/lib64
NAC_PID_FILE=/var/run/nac.pid
RUNFILE=/var/run/naconnector.run
respawn=1
MAX_LOG_FILE_SIZE=$(expr 1 \* 1024 \* 1024)

if ! [ -x ${NAC} ]; then
  echo "${NAC} does not exist!"
  exit 0
fi

start()
{
  if [[ -e ${NAC_PID_FILE} ]]; then
      NAC_PID="$(cat ${NAC_PID_FILE})"
      if [[ -e /proc/${NAC_PID} ]]; then
          kill -s 15 ${NAC_PID}
      fi                                              
      rm -rf ${NAC_PID_FILE}
      /bin/sync
  fi                                                
  if [ -e ${NAC_LOG_FILE} ]; then 
      logFileSize=$( wc -c ${NAC_LOG_FILE} | awk '{print $1}' )
      if [ ${logFileSize} -gt ${MAX_LOG_FILE_SIZE} ]; then
        mv ${NAC_LOG_FILE} /var/log/nac-old.log  
        /bin/sync
      fi
  fi
  echo "Starting NA Connector..."                 
  ${NAC} >> ${NAC_LOG_FILE} 2>&1 & 
  NAC_PID=$!
  echo ${NAC_PID} > ${NAC_PID_FILE}
  if [ -e ${RUNFILE} ]; then
      runcount=$(< ${RUNFILE})
  else
      runcount=0
  fi
  ((runcount=runcount+1))
  echo "$runcount" > ${RUNFILE}

  while [ -e /proc/${NAC_PID} ];do
      sleep 30;
  done
}

stop()
{
  if [ -e ${NAC_PID_FILE} ]; then
      echo "Shutting down NA Connector..."
      NAC_PID="$(cat ${NAC_PID_FILE})"
      kill -s 15 ${NAC_PID}
      rm -rf ${NAC_PID_FILE}
  fi
}

on_exit()
{
  respawn=0
  stop
}

trap 'on_exit' TERM
while [ ${respawn} -eq 1 ]; do
	start
done

exit 0
