#!/bin/bash

if [ "$1" = "/usr/bin/startdde" ]; then
    export DDE_DEBUG_LEVEL=warning
    if [ -f "$HOME/.dde_env" ]; then
        export_commands=$(awk '/^export/ {
            if (match ($0, /export (\w+)=\"([^"\\;]+)\";/, arr)) {
                if (arr[1] == "LANG" || arr[1] == "LANGUAGE") {
                    print "export " arr[1] "=\"" arr[2] "\""
                }
            }
        }' ~/.dde_env)
        eval "$export_commands"
        # Handling configuration migration issues
        if [ -n "$QT_SCALE_FACTOR" ]; then
            unset QT_SCALE_FACTOR
            unset QT_SCREEN_SCALE_FACTORS
            unset QT_AUTO_SCREEN_SCALE_FACTOR
            unset QT_FONT_DPI
            export STARTDDE_MIGRATE_SCALE_FACTOR=1
        fi
    elif [ -f "$HOME/.pam_environment" -a -n "$QT_SCALE_FACTOR" ]; then
        # Handling configuration migration issues for earlier version
        unset QT_SCALE_FACTOR
        export STARTDDE_MIGRATE_SCALE_FACTOR=1
    fi
    # control qt program infos level, set it only on uos
    if [ -f "/etc/os-version" ];then
        if [ ! `grep Community /etc/os-version` ];then
            export QT_LOGGING_RULES="*.debug=false;*.info=false"
        fi
    fi
    # set DSG_DATA_DIRS
    if [ -d "/persistent/linglong/entries/share/dsg" ];
    then
        export DSG_DATA_DIRS="$DSG_DATA_DIRS:/usr/share/dsg:/persistent/linglong/entries/share/dsg"
    fi
    # set qt qpa platform type
    export QT_QPA_PLATFORM=xcb

    # https://man7.org/linux/man-pages/man7/systemd.environment-generator.7.html
    # set the default value
    XDG_DATA_DIRS="${XDG_DATA_DIRS:-/usr/local/share/:/usr/share}"

    if [ -d $HOME/.local/share/icons/ ];
    then
        export XDG_DATA_DIRS="$HOME/.local/share/icons/:${XDG_DATA_DIRS}"
    fi
    export XDG_DATA_HOME="$HOME/.local/share"
    export XDG_CONFIG_HOME="$HOME/.config"
    export XDG_CACHE_HOME="$HOME/.cache"
else
    echo "Error: $1 is not startdde"
fi
