#!/usr/bin/env bash
# Removes DANKE HMI. Keeps your settings and paired phones unless --purge.
#   danke-hmi-uninstall          remove the app
#   danke-hmi-uninstall --purge  also remove settings, paired phones and system tweaks
set -u
PURGE=0; [ "${1:-}" = "--purge" ] && PURGE=1
APP=danke-hmi
DATA="${XDG_DATA_HOME:-$HOME/.local/share}"
BASE="$DATA/$APP"
CONF="${XDG_CONFIG_HOME:-$HOME/.config}/$APP"
STATE="${XDG_STATE_HOME:-$HOME/.local/state}/$APP"
UNITS="${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user"
BIN="$HOME/.local/bin"

echo "→ Arrêt du service"
systemctl --user disable --now danke-hmi.service >/dev/null 2>&1 || true
rm -f "$UNITS/danke-hmi.service"
systemctl --user daemon-reload >/dev/null 2>&1 || true

echo "→ Retrait de l'app, du menu et des commandes"
rm -f "$DATA/applications/danke-hmi.desktop" \
      "$DATA/icons/hicolor/scalable/apps/danke-hmi.svg" \
      "$DATA/icons/hicolor/256x256/apps/danke-hmi.png"
command -v update-desktop-database >/dev/null 2>&1 && update-desktop-database -q "$DATA/applications" 2>/dev/null || true
for f in "$BIN"/danke-hmi*; do
  [ -L "$f" ] && case "$(readlink "$f")" in "$BASE"/*) rm -f "$f";; esac
done
rm -f "$BIN/danke-hmi" "$BIN/danke-hmi-status" "$BIN/danke-hmi-restart"   # pre-1.7 leftovers

FW="$(cat "$STATE/firewall" 2>/dev/null || true)"
rm -rf "$BASE"

if [ "$PURGE" = 1 ]; then
  echo "→ Suppression des réglages et des téléphones appairés"
  rm -rf "$CONF" "$STATE"
  echo "→ Retrait des réglages système (mot de passe demandé)"
  sudo bash -s "$FW" <<'ROOT' || echo "  (réglages système laissés en place)"
rm -f /etc/udev/rules.d/70-danke-hmi-uinput.rules /etc/modules-load.d/danke-hmi-uinput.conf
udevadm control --reload-rules 2>/dev/null || true
case "$1" in
  ufw:*)       ufw delete allow from "${1#ufw:}" to any port 8765 proto tcp >/dev/null 2>&1 || true ;;
  firewalld:*) firewall-cmd --permanent --remove-rich-rule="rule family=ipv4 source address=${1#firewalld:} port port=8765 protocol=tcp accept" >/dev/null 2>&1 && firewall-cmd --reload >/dev/null 2>&1 || true ;;
esac
ROOT
  echo "✓ DANKE HMI entièrement supprimé."
else
  echo "✓ DANKE HMI désinstallé."
  echo "  Réglages et téléphones gardés dans $CONF"
  echo "  Pour les effacer aussi : rm -rf \"$CONF\""
fi
