#!/bin/sh

# general config
. /etc/rc.conf
. /etc/rc.d/functions
. /etc/conf.d/tracd.conf

DAEMON_NAME=tracd


if [ -z $PORT ]; then
  PORT="-p 8080"
else
  PORT="-p $PORT"
fi

if [ -z $AUTH ]; then
  AUTH=
else
  AUTH="--auth $AUTH"
fi

PID=`cat /var/run/$DAEMON_NAME.pid 2>/dev/null`
case "$1" in
  start)
    if [ -z "$PROJECT" ]; then
      stat_fail
      echo "You need to set the project path in /etc/conf.d/${DAEMON_NAME}.conf"
      exit 1
    fi
    stat_busy "Starting $DAEMON_NAME: "
    if [ -n "$PID" ] ; then
      stat_fail
      echo "pid=$PID, /var/run/$DAEMON_NAME.pid exist!"
      exit 1
    fi
    /opt/trac/bin/tracd $PORT $AUTH $PROJECT \
    	>> /var/log/$DAEMON_NAME.log 2>&1 & PID=$!
    if [ $? -gt 0 ]; then
      stat_fail
    else
      add_daemon $DAEMON_NAME
      echo $PID > /var/run/$DAEMON_NAME.pid
      stat_done
    fi
    ;;
  stop)
    stat_busy "Shutting down $DAEMON_NAME: "
    if [ -n "$PID" ] ; then
      kill $PID &> /dev/null
      if [ $? -gt 0 ] ; then
        stat_fail
        echo "pid=$PID, /var/run/$DAEMON_NAME.pid exist, but kill failed!"
        exit 1
      fi
    fi
    rm -f /var/run/$DAEMON_NAME.pid &> /dev/null
    rm_daemon $DAEMON_NAME
    stat_done
    ;;
  reload|restart)
    $0 stop
    $0 start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|reload}"
esac 

# vim: ts=2 sw=2 et:
