#!/bin/sh

SCRIPT=/home/streamera
USER=$(whoami)

if [ "$USER" != "root" ]; then
  echo "Please run as root!"
  exit 0
fi

start() {
  pids=$(pgrep -u streamera nginx | wc -l)
  if [ $pids != 0 ]; then
    echo 'STREAMERA is already running'
    return 1
  fi
  echo 'Starting STREAMERA...'
  sudo chown -R streamera:streamera /sys/class/net
  sudo chown -R streamera:streamera /home/streamera/content/streams
  sudo chown -R streamera:streamera /home/streamera/tmp
  if [ -f $SCRIPT/bin/redis/redis-server ]; then
    sudo -u streamera $SCRIPT/bin/redis/redis-server $SCRIPT/bin/redis/redis.conf >/dev/null 2>/dev/null
  fi
  sudo -u streamera $SCRIPT/bin/nginx/sbin/nginx >/dev/null 2>/dev/null
  sudo -u streamera $SCRIPT/bin/nginx_rtmp/sbin/nginx_rtmp >/dev/null 2>/dev/null
  sudo -u streamera $SCRIPT/bin/daemons.sh
  sudo $SCRIPT/bin/php/bin/php $SCRIPT/includes/cli/startup.php
  sudo -u streamera $SCRIPT/bin/php/bin/php $SCRIPT/includes/cli/signals.php >/dev/null 2>/dev/null &
  sudo -u streamera $SCRIPT/bin/php/bin/php $SCRIPT/includes/cli/watchdog.php >/dev/null 2>/dev/null &
  sudo -u streamera $SCRIPT/bin/php/bin/php $SCRIPT/includes/cli/queue.php >/dev/null 2>/dev/null &
  if [ -f $SCRIPT/includes/cli/cache_handler.php ]; then
    sudo -u streamera $SCRIPT/bin/php/bin/php $SCRIPT/includes/cli/cache_handler.php >/dev/null 2>/dev/null &
  fi
  if [ -f $SCRIPT/includes/cli/connection_sync.php ]; then
    sudo -u streamera $SCRIPT/bin/php/bin/php $SCRIPT/includes/cli/connection_sync.php >/dev/null 2>/dev/null &
  fi
  echo 'Running in foreground...'
  sleep infinity
}

stop() {
  pids=$(pgrep -u streamera nginx | wc -l)
  if [ $pids = 0 ]; then
    echo 'STREAMERA is not running'
    return 1
  fi
  echo 'Stopping STREAMERA...'
  sudo killall -u streamera
  sleep 1
  sudo killall -u streamera
  sleep 1
  sudo killall -u streamera
}

restart() {
  ps -U streamera | egrep -v "ffmpeg|PID" | awk '{print $1}' | xargs kill -9
  start
}

reload() {
  pids=$(pgrep -u streamera nginx | wc -l)
  if [ $pids = 0 ]]; then
    echo 'STREAMERA is not running'
    return 1
  fi
  echo 'Reloading STREAMERA...'
  sudo -u streamera $SCRIPT/bin/nginx/sbin/nginx -s reload
  sudo -u streamera $SCRIPT/bin/nginx_rtmp/sbin/nginx_rtmp -s reload
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  reload)
    reload
    ;;
  restart)
    restart
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|reload}"
esac

exit 0
