#!/bin/sh
#
# Teleport startup script for Slackware Linux

TELEPORT=/usr/bin/teleport
PIDFILE=/var/run/teleport/teleport.pid
LOGFILE=/var/log/teleport/teleport.log
LOCKFILE=/var/lock/subsys/teleport.lock

teleport_start() {
  if ! [ -e "/var/run/teleport" ]; then
    mkdir /var/run/teleport
  fi

  if [ -s $PIDFILE ]; then
    echo "Teleport appears to be already running?"
    exit 1
  fi

  echo -n "Starting Teleport services..."
  teleport start -c /etc/teleport/teleport.yaml --pid-file $PIDFILE >> ${LOGFILE} 2>&1 &
  RETVAL=$?
  echo
  [ $RETVAL = 0 ] && touch $LOCKFILE
  return $RETVAL
}

teleport_stop() {
  if [ ! -s $PIDFILE ]; then
    echo "$PIDFILE does not exist or is empty."
    exit 1
  fi

  echo -n "Stopping Teleport services..."

  PID=$(cat $PIDFILE)
  kill $PID
  while [ -d /proc/$PID ]; do
    sleep 1
    echo -n "."
  done
  echo " done"

  rm -f $PIDFILE $LOCKFILE
}

teleport_restart() {
  teleport_stop
  sleep 3
  teleport_start
}

case "$1" in
  start)
    teleport_start
    ;;
  stop)
    teleport_stop
    ;;
  restart)
    teleport_restart
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac
