#!/bin/sh

SPAWN_BIN='/usr/bin/avreg-mon'

[ -e "$SPAWN_BIN" ] || exit 0
[ -e "$(which systemctl)" ] || exit 0

set -e

RespawnTimeout() {
   local start_sec=$1 exit_sec offset_sec timeout

   exit_sec=$(date +%s)
   offset_sec=$((exit_sec - start_sec))
   if [ $offset_sec -ge 60 ]; then
      timeout=1
   elif [ $offset_sec -ge 10 ]; then
      timeout=3
   else
      timeout=5
   fi

   echo $timeout
}

while [ "$(systemctl get-default)" = 'graphical.target' ]; do
   start_sec=$(date +%s)

   if $SPAWN_BIN $@; then
      # EXIT_SUCCESS
      break
   fi

   # EXIT_FAILURE
   sleep $(RespawnTimeout $start_sec)
done
