"""Minimal systemd sd_notify via NOTIFY_SOCKET (no systemd-python dependency)."""

from __future__ import annotations

import os
import socket


def notify(state: str) -> bool:
    """Send a state string to systemd (e.g. READY=1, WATCHDOG=1). Returns True if sent."""
    addr = os.environ.get("NOTIFY_SOCKET")
    if not addr:
        return False
    if addr[0] == "@":
        addr = "\0" + addr[1:]
    payload = state.encode("utf-8")
    if addr.startswith("\0"):
        sock = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
        try:
            sock.connect(addr)
            sock.sendall(payload)
            return True
        except OSError:
            return False
        finally:
            sock.close()
    sock = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
    try:
        sock.connect(addr)
        sock.sendall(payload)
        return True
    except OSError:
        return False
    finally:
        sock.close()
