#!/bin/sh
#
### BEGIN INIT INFO
# Provides:          gfiber-loguploader
# Required-Start:    $syslog $remote_fs
# Required-Stop:     $syslog $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: GFiber loguploader client
### END INIT INFO

[ -x /usr/bin/upload-logs ] || exit 0
. /lib/lsb/init-functions

atomic_stdin() {
  rm -f "$1" "$1.new"
  cat >"$1.new"
  mv "$1.new" "$1"
}

case "$1" in
  start)
    log_daemon_msg "Starting GFiber log uploader" "upload-logs"
    if ! [ -e /etc/ssl/certs/device.pem -a \
           -e /etc/ssl/private/device.key ]; then
      echo >&2
      echo "Cert missing: /etc/ssl/certs/device.pem and /etc/ssl/private/device.key." >&2
      echo >&2
      log_end_msg 1
      exit 1
    fi
    rm -f /tmp/ssl
    ln -sf /etc/ssl/. /tmp/ssl
    uname -r | sed 's/ /-/g' | atomic_stdin /etc/version
    uname | atomic_stdin /tmp/platform
    # Our hostnames are something like hostname.cluster.whatever.com.
    # We want the hostname.cluster part to be part of the certname, but
    # sadly the name field in our certs isn't super happy about that, so
    # let's use _ instead of dot and strip hyphens, where relevant.
    hostname -f |
      sed -e 's/\([^.]*\.[^.]*\).*/\1/' \
          -e 's/\./_/g' \
          -e 's/-//g' |
      atomic_stdin /tmp/serial
    cd /
    upload-logs-loop </dev/null &
    log_end_msg 0
    exit 0
    ;;
  stop)
    log_daemon_msg "Stopping GFiber log uploader" "upload-logs"
    pkill upload-logs-loop
    pkill upload-logs
    pkill -f prefix-logs
    log_end_msg 0
    exit 0
    ;;
  reload|force-reload|restart)
    $0 stop; $0 start
    ;;
  status)
    pgrep upload-logs >/dev/null
    exit $?
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|reload|force-reload|status}"
    exit 1
esac
