#!/bin/bash
# shellcheck disable=SC1091
set -Eeu -o pipefail

SESSION_TYPE=$1

if [[ "$SESSION_TYPE" == "regolith-x11" ]]; then 
    echo "Starting x11 Session..."

    if [ -z "$XDG_CURRENT_DESKTOP" ]; then
        export XDG_CURRENT_DESKTOP="Regolith:GNOME-Flashback:GNOME"
    fi
elif [[ "$SESSION_TYPE" == "regolith-wayland" ]]; then 
    echo "Starting Wayland Session..."
else 
    echo "Session type must be specified by caller: regolith-wayland, regolith-x11. Unrecognized: '$SESSION_TYPE'"
    exit 1
fi

# Determine gnome-session api based on system, since `gnome-session --version` returns ""
if [ -f /etc/os-release ]; then
    source /etc/os-release

    if [[ "$VERSION_CODENAME" == "jammy" || "$VERSION_CODENAME" == "bookworm" ]]; then
        echo "Using gnome-session built-in session"
        exec gnome-session --builtin --session=$SESSION_TYPE --disable-acceleration-check "$@"        
    else
        exec gnome-session --session=$SESSION_TYPE --disable-acceleration-check "$@"                
    fi
else
    echo "No /etc/os-release, guessing gnome-session cli api..."
    exec gnome-session --session=$SESSION_TYPE --disable-acceleration-check "$@"
fi
