# #!/bin/bash
set -euo pipefail
LOG_FILE="$HOME/.local/logs/session.log"

log() { echo "[$(date --iso-8601=seconds)] $*" | tee -a "$LOG_FILE"; }

env > $XDG_RUNTIME_DIR/steamos-environment
log "Starting SteamOS Session"
while true; do
    systemctl --user --wait start steamos.service
    wait_status=$?
    log "Graphical session service exited with status $wait_status"
    if [ $wait_status -ne 0 ]; then
        log "Graphical session service exited with error; ending loop."
        break
    fi
    if [ -f "$HOME/.steamos-session-switch" ]; then
        log "Graphical session service exited; switch file present -> restarting..."
        rm "$HOME/.steamos-session-switch"
        continue
    fi
    log "Graphical session service exited; switch file absent -> ending loop."
    break
done
sleep 5
log "SteamOS Session Ended"