#! /bin/sh
#
### BEGIN INIT INFO
# Provides:          tinc
# Required-Start:    $network
# Required-Stop:     $network
# Should-Start:      $syslog $named
# Should-Stop:       $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start tinc daemons
# Description:       Create a file $NETSFILE (/etc/tinc/nets.boot),
#                    and put all the names of the networks in there.
#                    These names must be valid directory names under
#                    $TCONF (/etc/tinc). Lines starting with a # will be
#                    ignored in this file.
### END INIT INFO
#
# Based on Lubomir Bulej's Redhat init script.

DAEMON="/usr/sbin/tincd"
NAME="tinc"
DESC="tinc daemons"
TCONF="/etc/tinc"
NETSFILE="$TCONF/nets.boot"
NETS=""

test -f $DAEMON || exit 0

[ -r /etc/default/tinc ] && . /etc/default/tinc

find_nets () {
  if [ ! -f $NETSFILE ] ; then
    echo "Please create $NETSFILE."
    exit 0
  fi
  NETS="`egrep '^[ ]*[a-zA-Z0-9_-]+[ ]*$' $NETSFILE`"
}

case "$1" in
  start)
    find_nets
    echo -n "Starting $DESC:"
    for n in $NETS ; do
      echo -n " $n"
      $DAEMON -n $n $EXTRA
    done
    echo "."
  ;;
  stop)
    find_nets
    echo -n "Stopping $DESC:"
    for n in $NETS ; do
      echo -n " $n"
      $DAEMON -n $n $EXTRA -k
    done
    echo "."
  ;;
  reload|force-reload)
    find_nets
    echo -n "Reloading $DESC configuration:"
    for n in $NETS ; do
      echo -n " $n"
      $DAEMON -n $n $EXTRA -kHUP
    done
    echo "."
  ;;
  restart)
    find_nets
    echo -n "Restarting $DESC:"
    for n in $NETS ; do
      echo -n " $n"
      $DAEMON -n $n $EXTRA -k
      sleep 1
      $DAEMON -n $n $EXTRA
    done
    echo "."
  ;;
  *)
    echo "Usage: /etc/init.d/$NAME {start|stop|reload|restart|force-reload}"
    exit 1
  ;;
esac

exit 0
