#!/bin/sh
#=================================================================
# Begin ripd
#
# Description : Start bird daemon
# chkconfig:	2345 70 20
#
#=================================================================

### BEGIN INIT INFO
# Provides:            bird
# Should-Start:
# Default-Start:       2 3 4 5
# Default-Stop:        0 1 6
# Short-Description:   Starts bird daemon.
# Description:         Starts bird daemon.
### END INIT INFO

. /lib/lsb/init-functions

RETVAL=0
PROG="bird"
CMD="/usr/sbin/${PROG}"
CONF_FILE=/etc/frr/${PROG}.conf
PID_FILE="/run/"${PROG}/${PROG}.pid

wait_route()

{
log_info_msg "${PROG} waiting for default route to be established...."
for i in $(seq 1 10); do
    sleep 1
    # double check if default route is known
    if route | grep -qE "^default"; then
        break
    fi
    /usr/bin/false
done
evaluate_retval
}

#preparing pid file
mkdir -p /run/${PROG}
chown root:${PROG} /run/${PROG}

# Some functions to make the below more readable
case "$1" in
    start)
        log_info_msg "Starting ${PROG} daemon..."
        start_daemon -f ${CMD} -P ${PID_FILE}
        evaluate_retval
	wait_route;
        ;;

    stop)
	log_info_msg "Stopping ${PROG} Server..."
	${PROG}c down	> /dev/null
	evaluate_retval
        ;;

    reload)
	log_info_msg "Reloading ${PROG} Server..."
	${PROG}c configure > /dev/null
	evaluate_retval
        ;;

    restart)
        $0 stop
        sleep 1
        $0 start
        ;;

    condrestart)
	if [ -f ${PID_FILE} ] ; then
          pid=`cat ${PID_FILE} 2>/dev/null`
          if [ -n "${pid}"  -a -d /proc/${pid} ]; then
	    $0 restart
	    fi
	  fi
        ;;

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

