#!/usr/bin/env bash
# Restart a daemon idempotently — safe to call from i3's exec_always.
#   usage: restart-daemon <name> [args…]
set -uo pipefail

name="${1:?usage: restart-daemon <name> [args...]}"
shift || true

command -v "$name" >/dev/null 2>&1 || { echo "restart-daemon: $name not installed" >&2; exit 0; }

pkill -x "$name" >/dev/null 2>&1 || true
for _ in {1..20}; do
  pgrep -x "$name" >/dev/null || break
  sleep 0.1
done
pgrep -x "$name" >/dev/null && pkill -9 -x "$name"

log="${XDG_CACHE_HOME:-$HOME/.cache}/$name.log"
mkdir -p "$(dirname "$log")"
exec "$name" "$@" >>"$log" 2>&1 &
