#!/bin/bash

TAG="deepin-upgrade-check"

logger -t "$TAG" "Starting upgrade check, XDG_SESSION_TYPE=$XDG_SESSION_TYPE"

if [ "$XDG_SESSION_TYPE" = "x11" ]; then
    logger -t "$TAG" "X11 session detected"
    if [ -f /tmp/deepin_update_option.json ]; then
        logger -t "$TAG" "Update option file found, proceeding"
        display_daemon="/usr/lib/deepin-daemon/greeter-display-daemon"
        if [ -x $display_daemon ]; then
            logger -t "$TAG" "Starting greeter-display-daemon"
            $display_daemon 1>/tmp/greeter-display-daemon.log 2>&1 &
        else
            logger -t "$TAG" -p user.warning "greeter-display-daemon not found or not executable: $display_daemon"
        fi
        xsettingsd_conf="/etc/lightdm/deepin/xsettingsd.conf"
        if [ -e $xsettingsd_conf ]; then
            logger -t "$TAG" "Starting xsettingsd with config: $xsettingsd_conf"
            xsettingsd -c $xsettingsd_conf &
        else
            logger -t "$TAG" -p user.warning "xsettingsd config not found: $xsettingsd_conf"
        fi
        logger -t "$TAG" "Launching /usr/libexec/deepin/dde-update"
        /usr/libexec/deepin/dde-update
        logger -t "$TAG" "dde-update exited with code $?"
    else
        logger -t "$TAG" "No update option file, skipping"
    fi
elif [ "$XDG_SESSION_TYPE" = "wayland" ]; then
    logger -t "$TAG" "Wayland session detected"
    if [ -f /tmp/deepin_update_option.json ]; then
        logger -t "$TAG" "Update option file found, launching kwayland check wrapper"
        /usr/bin/run-kwayland-check-wrapper.sh
        logger -t "$TAG" "kwayland check wrapper exited with code $?"
    else
        logger -t "$TAG" "No update option file, skipping"
    fi
else
    logger -t "$TAG" -p user.warning "Unknown session type: $XDG_SESSION_TYPE, skipping"
fi

logger -t "$TAG" "Upgrade check finished"
