#!/bin/sh
# Runs discover-overlay while Discord's RPC port is up and stops it when Discord exits.
# Run by discover-overlay-wait.service (started from xmonad); output goes to the journal.

port_up() {
    ss -ltn | grep -qE '127\.0\.0\.1:64[67][0-9]'
}

while true; do
    while ! port_up; do sleep 2; done
    sleep 5
    port_up || continue   # port vanished again, Discord was still restarting

    discover-overlay &
    pid=$!

    while port_up && kill -0 "$pid" 2>/dev/null; do sleep 3; done

    kill "$pid" 2>/dev/null
    wait "$pid" 2>/dev/null
    sleep 2
done
