#!/bin/sh
set -e

if [ "$1" = "remove" ] || [ "$1" = "purge" ]; then
    udevadm control --reload-rules 2>/dev/null || true

    # Clean up the user-level PipeWire configs that asm-setup deployed —
    # without this they keep loading "ghost" Arctis virtual sinks at every
    # login because the package can't reach into $HOME (issue #24).
    # Audio profiles in ~/.config/arctis_manager/profiles/ are PRESERVED.
    REAL_USER="${SUDO_USER:-}"
    if [ -n "$REAL_USER" ]; then
        REAL_UID=$(id -u "$REAL_USER" 2>/dev/null || echo "")
        if [ -n "$REAL_UID" ]; then
            XDG_RUNTIME_DIR="/run/user/$REAL_UID"
            DBUS_SOCKET="$XDG_RUNTIME_DIR/bus"
            echo "Cleaning up user-level configs for ${REAL_USER} (audio profiles preserved)..."
            su -l "$REAL_USER" -c "
                XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS=unix:path=$DBUS_SOCKET
                export XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS
                for unit in arctis-manager.service arctis-video-router.service arctis-stream-guard.service app-ArctisManager.service arctis-gui.service filter-chain.service; do
                    systemctl --user disable --now \"\$unit\" >/dev/null 2>&1 || true
                done
                rm -f \"\$HOME/.config/pipewire/pipewire.conf.d/10-arctis-virtual-sinks.conf\"
                rm -f \"\$HOME/.config/pipewire/filter-chain.conf.d/sink-virtual-surround-7.1-hesuvi.conf\"
                rm -f \"\$HOME/.config/pipewire/filter-chain.conf.d\"/sonar-*.conf
                rm -f \"\$HOME/.config/systemd/user/arctis-manager.service\"
                rm -f \"\$HOME/.config/systemd/user/arctis-video-router.service\"
                rm -f \"\$HOME/.config/systemd/user/arctis-stream-guard.service\"
                rm -f \"\$HOME/.config/systemd/user/app-ArctisManager.service\"
                rm -f \"\$HOME/.config/systemd/user/arctis-gui.service\"
                rm -f \"\$HOME/.local/share/applications/ArctisManager.desktop\"
                rm -f \"\$HOME/.local/share/applications/ArctisManagerSystray.desktop\"
                update-desktop-database \"\$HOME/.local/share/applications\" >/dev/null 2>&1 || true
                if command -v dinitctl >/dev/null 2>&1; then
                    for svc in arctis-manager arctis-video-router arctis-stream-guard arctis-gui pipewire-filter-chain; do
                        dinitctl disable \"\$svc\" 2>/dev/null || true
                        rm -f \"\$HOME/.config/dinit.d/\$svc\" 2>/dev/null || true
                    done
                fi
                if [ -S \"\$DBUS_SOCKET\" ]; then
                    systemctl --user daemon-reload >/dev/null 2>&1 || true
                    systemctl --user restart pipewire pipewire-pulse >/dev/null 2>&1 || true
                fi
            " 2>/dev/null || true
        fi
    else
        echo "arctis-sound-manager removed."
        echo "  To finish cleaning up ghost virtual sinks (run as your normal user):"
        echo "  curl -fsSL https://raw.githubusercontent.com/loteran/Arctis-Sound-Manager/main/scripts/uninstall.sh | bash -s -- --purge --yes"
    fi
fi

#DEBHELPER#
exit 0
