#!/bin/ash
# Simple Autostart helper
NGINX=/usr/sbin/nginx
NGINX_PREFIX=/usr/local/nginx
NGINX_PID_FILE=/usr/local/nginx/logs/nginx.pid
RUNFILE=/var/run/nginx.run
respawn=1
NGINX_LOG_DIR=/usr/local/nginx/logs
NGINX_LOG_FILE=/var/log/nginx.log
MAX_LOG_FILE_SIZE=$(expr 1 \* 1024 \* 1024)
NGINX_DEBUG_FILE=/var/log/nginx_error.log
NGINX_OLD_DEBUG_FILE=/var/log/nginx_error_old.log
MAX_DEBUG_FILE_SIZE=$(expr 6 \* 1024 \* 1024 )

if ! [ -x ${NGINX} ]; then
  echo "${NGINX} does not exist!"
  exit 0
fi
if ! [ -e ${NGINX_LOG_DIR} ]; then
    echo "creating logs dir"      
    mkdir -p ${NGINX_LOG_DIR}     
fi

start()
{
  if [[ -e ${NGINX_PID_FILE} ]]; then
    # lets cleanup      
    ${NGINX} -s quit
    rm -rf ${NGINX_PID_FILE}
    /bin/sync                                    
  fi                                                
  if [ -e ${NGINX_LOG_FILE} ]; then 
      logFileSize=$( wc -c ${NGINX_LOG_FILE} | awk '{print $1}' )
      if [ ${logFileSize} -gt ${MAX_LOG_FILE_SIZE} ]; then
        > ${NGINX_DEBUG_FILE}
        /bin/sync
      fi
  fi
  if [[ ! -e ${NGINX_PID_FILE} ]]; then            
    cd /var/www/lua                   
    ${NGINX} -p ${NGINX_PREFIX}   >> ${NGINX_LOG_FILE} 2>&1 &
    sleep 2                            
    /bin/sync
    if [[ -e ${NGINX_PID_FILE} ]]; then
      NGINX_PID=$(<${NGINX_PID_FILE})
      if [ -e ${RUNFILE} ]; then
        runcount=$(< ${RUNFILE})
      else
        runcount=0
      fi
      ((runcount=runcount+1))
      echo "$runcount" > ${RUNFILE}
    fi
  fi
  retry=0
  while [ ! -e ${NGINX_PID_FILE} ]; do
    sleep 1;
    if [ ${retry} -gt 5 ]; then
      break
    fi
    retry=$((retry+1))
  done

   
    while [ -e /proc/${NGINX_PID} ];do
      if [[ ! -e ${NGINX_PID_FILE} ]]; then            
        cd /var/www/lua                   
        ${NGINX} -p ${NGINX_PREFIX}     >> ${NGINX_LOG_FILE} 2>&1 &
        sleep 2                            
        /bin/sync
        if [[ -e ${NGINX_PID_FILE} ]]; then
          NGINX_PID=$(<${NGINX_PID_FILE})
          if [ -e ${RUNFILE} ]; then
            runcount=$(< ${RUNFILE})
          else
            runcount=0
          fi
          ((runcount=runcount+1))
          echo "$runcount" > ${RUNFILE}
        fi
      fi
      if [ -e ${NGINX_DEBUG_FILE} ]; then 
          logFileSize=$( wc -c ${NGINX_DEBUG_FILE} | awk '{print $1}' )
          if [ ${logFileSize} -gt ${MAX_DEBUG_FILE_SIZE} ]; then
            > ${NGINX_DEBUG_FILE}
            /bin/sync
          fi
      fi
       sleep 10;
    done
}

stop()
{
  if [ -e ${NGINX_PID_FILE} ]; then
    echo "Shutting down Web Services..."
    ${NGINX} -s quit
  fi
}

on_exit()
{
  respawn=0
  stop
}

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

exit 0
