#!/bin/bash

set -euo pipefail

pid1="$(cat /proc/1/comm)"
if [ "${pid1}" != "dinit" ]; then
    echo "FAIL: PID 1 is '${pid1}', not dinit." >&2
    exit 1
fi

required_services=(
    early-filesystems
    root-rw
    udevd
    udev-trigger
    udev-settle
    filesystems
    runtime-setup
    dbus
    wpa-supplicant
    networkmanager
    loginready
    getty-tty1
)

for service in "${required_services[@]}"; do
    if ! dinitctl is-started "${service}" >/dev/null; then
        echo "FAIL: required service '${service}' is not started." >&2
        dinitctl status "${service}" || true
        exit 1
    fi
done

echo "PASS: dinit is PID 1 and all required boot services are started."
dinitctl list
