#!/bin/bash
set -eo pipefail

APP="/usr/lib/cyloneos/installer/cyloneos-installer"
LIVE_HOME="/home/cylone"
export HOME="${HOME:-$LIVE_HOME}"
export USER="${USER:-cylone}"
export LOG="${XDG_CACHE_HOME:-$HOME/.cache}/cyloneos-installer-session.log"

mkdir -p "$(dirname "$LOG")"
exec >>"$LOG" 2>&1
echo "=== cyloneos-installer-session $(date -Is) ==="
echo "USER=$USER HOME=$HOME DISPLAY=${DISPLAY:-} WAYLAND_DISPLAY=${WAYLAND_DISPLAY:-} XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR:-}"

export CYLONE_INSTALLER_LIB="/usr/lib/cyloneos/installer"
export CYLONE_INSTALLER_ICONS="/usr/share/cyloneos/installer/icons"
export GDK_BACKEND="${GDK_BACKEND:-wayland,x11}"

if [ ! -x "$APP" ]; then
	echo "Installer-Binary fehlt: $APP" >&2
	exit 1
fi

# Nach Absturz/VM-Reset: kurz warten bis Display/Session-D-Bus bereit ist.
for attempt in 1 2 3 4 5; do
	if [ -n "${WAYLAND_DISPLAY:-}" ] || [ -n "${DISPLAY:-}" ]; then
		break
	fi
	echo "Warte auf Display (Versuch $attempt/5) …"
	sleep 1
done

exit_code=0
"$APP" || exit_code=$?
echo "Installer beendet mit Code $exit_code"
exit "$exit_code"
