Dotfiles_ArchAP/greetd/scripts/smoke-headless.sh

32 lines
1.2 KiB
Bash
Executable file

#!/bin/sh
# Vérifie le démarrage Sway + GTK installés comme greeter, sans VT ni login réel.
set -eu
[ "$(id -u)" -eq 0 ] || { echo 'Exécuter comme root' >&2; exit 1; }
runtime=$(mktemp -d)
chown greeter:greeter "$runtime"
chmod 0700 "$runtime"
set +e
timeout --signal=TERM --kill-after=2s 10s \
runuser -u greeter -- env XDG_RUNTIME_DIR="$runtime" \
WLR_BACKENDS=headless WLR_RENDERER=pixman GREETD_SOCK="$runtime/unused" \
/usr/local/libexec/labfy-greeter/start-compositor >"$runtime/smoke.log" 2>&1 &
runner=$!
sleep 3
if pgrep -u greeter -f '^/usr/bin/python3 /usr/local/libexec/labfy-greeter/labfy_greeter.py$' >/dev/null; then
gtk_started=yes
else
gtk_started=no
fi
wait "$runner"
result=$?
set -e
if [ "$gtk_started" = yes ] && { [ "$result" -eq 124 ] || [ "$result" -eq 137 ]; } && \
! pgrep -u greeter -f '^/usr/bin/python3 /usr/local/libexec/labfy-greeter/labfy_greeter.py$' >/dev/null; then
echo 'HEADLESS_GREETER_SMOKE=PASS (GTK actif, arrêt contrôlé, aucun processus résiduel)'
else
cat "$runtime/smoke.log" >&2
echo "HEADLESS_GREETER_SMOKE=FAIL gtk=$gtk_started exit=$result" >&2
rm -rf -- "$runtime"
exit 1
fi
rm -rf -- "$runtime"