#!/usr/bin/env bash
set -euo pipefail

# Parse arguments
AUTO_CONFIRM=false
while [[ $# -gt 0 ]]; do
  case $1 in
    -y|--yes|--no-interactive)
      AUTO_CONFIRM=true
      shift
      ;;
    *)
      shift
      ;;
  esac
done

# Helper for confirmation prompts
confirm() {
    local prompt="$1"
    
    if [ "$AUTO_CONFIRM" = true ] || [ ! -t 0 ]; then
        return 0 # Default to yes in non-interactive/auto-confirm mode
    fi
    
    while true; do
        read -p "$prompt [Y/n]: " response
        case "$response" in
            [yY][eE][sS]|[yY]|"")
                return 0
                ;;
            [nN][oO]|[nN])
                return 1
                ;;
            *)
                echo "Please answer yes (y) or no (n)."
                ;;
        esac
    done
}

# Paths to remove
APP_DIR="$HOME/.config/rentsync-cf-tunnels"
SERVICE_DEST="$HOME/.config/systemd/user/rentsync-cf-tunnels.service"
DESKTOP_ENTRY="$HOME/.local/share/applications/rentsync-cf-tunnels.desktop"

echo "=== Cloudflare Tunnel Manager Uninstaller ==="

if ! confirm "Are you sure you want to completely uninstall the Rentsync Cloudflare Tunnel Manager?"; then
    echo "Uninstallation cancelled."
    exit 0
fi

# 1. Stop and disable the systemd service
echo "Stopping and disabling systemd service..."
systemctl --user stop rentsync-cf-tunnels || true
systemctl --user disable rentsync-cf-tunnels || true

# 2. Remove systemd service file
if [ -f "$SERVICE_DEST" ]; then
    echo "Removing systemd service file..."
    rm -f "$SERVICE_DEST"
    systemctl --user daemon-reload
fi

# 3. Remove Desktop launcher entry
if [ -f "$DESKTOP_ENTRY" ]; then
    echo "Removing desktop launcher..."
    rm -f "$DESKTOP_ENTRY"
    # Update launcher menu database cache if tool is present
    if command -v update-desktop-database &>/dev/null; then
        update-desktop-database "$HOME/.local/share/applications" || true
    fi
fi

# 4. Remove application config & binaries directory
if [ -d "$APP_DIR" ]; then
    echo "Deleting configuration and binaries directory at $APP_DIR..."
    rm -rf "$APP_DIR"
fi

echo "=== Uninstallation Completed Successfully! ==="
