#!/bin/bash

. /etc/init.d/functions

RETVAL=0

prog="tailscaled"
progdir="/usr/sbin"
desc="Tailscale node agent"

OPTS="--state=/var/lib/tailscale/tailscaled.state"

if [ -f /etc/sysconfig/$prog ] ; then
  . /etc/sysconfig/$prog
fi

PIDFILE=/var/run/tailscale/$prog.pid

start() {
    echo -n $"Starting $desc ($prog): "
    ulimit -S -c 0 >/dev/null 2>&1
     
    $progdir/$prog $OPTS >/dev/null 2>&1 &
    RETVAL=$?
    
    if [ $RETVAL -eq 0 ]; then
        echo $! > $PIDFILE
        touch /var/lock/subsys/$prog
        echo_success
    else
        echo_failure
    fi
    echo
    return $RETVAL
}

stop() {
    echo -n $"Shutting down $desc ($prog): "
    killproc $prog
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
    [ $RETVAL -eq 0 ] && rm -f $PIDFILE
    return $RETVAL
}

rhstatus() {
    status $prog
}

forcerestart() {
    stop
    start
}

restart() {
    stop
    start
}

reload() {
    echo -n $"Reloading $prog configuration: "
    killproc $prog -HUP
    RETVAL=$?
    echo
    return $RETVAL
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    restart
    ;;
  force-restart)
    forcerestart
    ;;
  reload)
    reload
    ;;
  status)
    rhstatus
    ;;
  condrestart)
    status $prog &>/dev/null && restart || :
    ;;
  condstop)
    status $prog &>/dev/null && stop || :
    ;;
  *)
    echo $"Usage: $0 {start|stop|status|reload|restart|force-restart|condrestart|condstop}"
    exit 1
esac

exit $RETVAL