#!/sbin/openrc-run

description="Bee: load NVIDIA kernel modules"

depend() {
    need localmount
    before bee-audit
}

start() {
    ebegin "Loading NVIDIA modules"
    kver="$(uname -r)"
    einfo "kernel: ${kver}"
    if [ -d "/lib/modules/${kver}/extra/nvidia" ]; then
        einfo "module dir: /lib/modules/${kver}/extra/nvidia"
        ls "/lib/modules/${kver}/extra/nvidia"/*.ko 2>/dev/null | sed 's/^/  /' || true
    else
        ewarn "module dir missing: /lib/modules/${kver}/extra/nvidia"
    fi

    depmod -a 2>/dev/null || true

    for mod in nvidia nvidia-modeset nvidia-uvm; do
        if modprobe "$mod" 2>/dev/null; then
            einfo "loaded: $mod"
        else
            ewarn "failed to load: $mod"
            dmesg | tail -n 5 | sed 's/^/  dmesg: /' || true
        fi
    done

    eend 0
}
