#!/command/with-contenv bash
# shellcheck shell=bash
# Start the go2rtc-healthcheck service

set -o errexit -o nounset -o pipefail

# Logs should be sent to stdout so that s6 can collect them

# Give some additional time for go2rtc to start before start pinging
sleep 10s
echo "[INFO] Starting go2rtc healthcheck service..."

while sleep 30s; do
    # Check if the service is running
    if ! curl --connect-timeout 10 --fail --silent --show-error --output /dev/null http://127.0.0.1:1984/api/streams 2>&1; then
        echo "[ERROR] The go2rtc service is not responding to ping, restarting..."
        # We can also use -r instead of -t to send kill signal rather than term
        s6-svc -t /var/run/service/go2rtc 2>&1
        # Give some additional time to go2rtc to restart before start pinging again
        sleep 10s
    fi
done
