#!/bin/sh

if [ -z "$XDG_RUNTIME_DIR" ] || ! pgrep -u "$USER" labwc > /dev/null || pgrep -f -x -- "$*" > /dev/null; then
  exit 0
fi

WPID=$(pidof labwc)
MAX_RESTARTS=10
COUNT=0

while true; do
    pid_list="$(pidof labwc 2>/dev/null)"

    if ! echo "$pid_list" | grep -qw "$WPID"; then
        break
    fi

    if [ "$COUNT" -ge "$MAX_RESTARTS" ]; then
        break
    fi

    if ! pgrep -f -x -- "$*" > /dev/null; then
        "$@" &
        COUNT=$((COUNT + 1))
    else
        COUNT=0
    fi

    sleep 1
done
