#!/usr/bin/env bash
# VayDNS Uninstaller
# Usage: bash <(curl -fsSL https://vaydns.orx.ma/uninstall.sh)

set -e

VAYDNS_DIR="/opt/vaydns"
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'
CYAN='\033[0;36m'; BOLD='\033[1m'; NC='\033[0m'

info()  { echo -e "  ${GREEN}[+]${NC} $*"; }
warn()  { echo -e "  ${YELLOW}[!]${NC} $*"; }
error() { echo -e "  ${RED}[✗]${NC} $*"; exit 1; }

echo -e "${CYAN}${BOLD}"
echo "  VayDNS Uninstaller"
echo "  ──────────────────"
echo -e "${NC}"

[[ $EUID -ne 0 ]] && error "Run as root"

read -rp "  ⚠  This will remove VayDNS completely. Confirm? [y/N]: " CONFIRM
[[ "${CONFIRM,,}" != "y" ]] && { echo "  Aborted."; exit 0; }

read -rp "  Keep configuration and keys? [Y/n]: " KEEP_CONF
KEEP_CONF="${KEEP_CONF:-y}"

info "Stopping services..."
systemctl stop vaydns-server 2>/dev/null || true
systemctl stop vaydns-client 2>/dev/null || true
systemctl disable vaydns-server 2>/dev/null || true
systemctl disable vaydns-client 2>/dev/null || true
rm -f /etc/systemd/system/vaydns-server.service
rm -f /etc/systemd/system/vaydns-client.service
systemctl daemon-reload 2>/dev/null || true

info "Removing binaries..."
rm -f /usr/local/bin/vaydns
rm -f "$VAYDNS_DIR/vaydns-server"
rm -f "$VAYDNS_DIR/vaydns-client"
rm -f "$VAYDNS_DIR/menu.py"
rm -f "$VAYDNS_DIR/utils.sh"
rm -rf "$VAYDNS_DIR/src"
rm -rf "$VAYDNS_DIR/logs"

if [[ "${KEEP_CONF,,}" == "n" ]]; then
  warn "Removing configuration and keys..."
  rm -rf "$VAYDNS_DIR"
  info "All VayDNS data removed"
else
  info "Configuration and keys kept at $VAYDNS_DIR/keys/ and $VAYDNS_DIR/vaydns.conf"
fi

info "Removing iptables rules (best effort)..."
iptables  -D INPUT -p udp --dport 5300 -j ACCEPT 2>/dev/null || true
iptables  -t nat -D PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5300 2>/dev/null || true
ip6tables -D INPUT -p udp --dport 5300 -j ACCEPT 2>/dev/null || true
ip6tables -t nat -D PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5300 2>/dev/null || true

echo ""
echo -e "  ${GREEN}${BOLD}✔ VayDNS uninstalled${NC}"
