#!/bin/ash
trap "" HUP

# On prépare la commande d'extinction brute en RAM
# C'est ce qui se passe quand tu tapes poweroff en console
force_off() {
    sleep 1
    /bin/busybox poweroff -f
}

script=${0##*/}

# Si on est en interface graphique, on ferme le bureau
if [ -n "$DISPLAY" ] ; then
    [ "$script" = "poweroff" ] && exec wmpoweroff
    [ "$script" = "reboot" ] && exec wmreboot
fi

# 1. On lance la procédure de sauvegarde normale de Puppy
/etc/rc.d/rc.shutdown & 
SHUTDOWN_PID=$!

# 2. ON DOUBLE LA COMMANDE (Sécurité)
# On attend maximum 10 secondes que la sauvegarde se fasse.
# Si c'est plus long ou si ça plante (I/O error), on force.
( sleep 10 ; /bin/busybox poweroff -f ) &

# 3. On attend la fin naturelle ou le timeout
wait $SHUTDOWN_PID 2>/dev/null

# 4. COMMANDE FINALE (Celle qui marche dans ta console)
sync
exec /bin/busybox poweroff -f
