#!/bin/bash

# ===== Log =====
log.warn() { echo -e "[\e[33mWARN\e[0m]:  \e[1m$*\e[0m"; }
log.error()  { echo -e "[\e[31mERROR\e[0m]: \e[1m$*\e[0m"; }
log.info() { echo -e "[\e[96mINFO\e[0m]:  \e[1m$*\e[0m"; }
log.debug()  { echo -e "[\e[32mDEBUG\e[0m]: \e[1m$*\e[0m"; }

# 获取原始用户（调用 pkexec 或 sudo 的用户）
ORIGINAL_USER="${SUDO_USER:-$USER}"
ORIGINAL_UID=$(id -u "$ORIGINAL_USER")
ORIGINAL_DISPLAY="${DISPLAY:-:0}"
ORIGINAL_XAUTHORITY="${XAUTHORITY:-$HOME/.Xauthority}"

# 以原始用户身份运行图形界面命令
function run_as_user() {
    sudo -u "$ORIGINAL_USER" DISPLAY="$ORIGINAL_DISPLAY" XAUTHORITY="$ORIGINAL_XAUTHORITY" "$@"
}

function zenity() {
    if [[ -e /usr/bin/garma ]]; then
        run_as_user garma "$@"
    else
        run_as_user "$(command -v zenity)" "$@"
    fi
}

function notify-send() {
    local uid="$ORIGINAL_UID"
    sudo -u "$ORIGINAL_USER" DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/${uid}/bus" zenity --notification --text="$@"
}

# 如果当前不是 root，则用 pkexec 重新执行并传递必要的环境变量
if [ "$UID" != "0" ]; then
    # 保存当前环境变量，通过 env 传递给 pkexec
    exec pkexec "$0" "$@"
    exit $?
fi



# 用户确认
if zenity --question --text="即将卸载 $1\n请确认" --no-wrap; then
    # 启动卸载命令（这里假设 apm 是系统命令，请根据实际情况调整）
    # 注意：apm 可能不存在，可替换为 apt、dnf 等
    apm autoremove "$1" -y
    ret=$?


fi

notify-send "卸载完成"