#!/bin/sh
set -eu

TARGET_USER=${TARGET_USER:-user}
TARGET_UID=${TARGET_UID:-1000}
STATE_DIR=/var/lib/system-monitor

if [ "$(id -u)" != 0 ]; then
  echo "uninstall.sh must run as root through gui-askpass sudo" >&2
  exit 1
fi

user_home=$(getent passwd "$TARGET_USER" | cut -d: -f6)

runuser -u "$TARGET_USER" -- env XDG_RUNTIME_DIR="/run/user/$TARGET_UID" systemctl --user disable --now agent-guard.service 2>/dev/null || true
rm -f "$user_home/.config/systemd/user/agent-guard.service"
runuser -u "$TARGET_USER" -- env XDG_RUNTIME_DIR="/run/user/$TARGET_UID" systemctl --user daemon-reload 2>/dev/null || true

systemctl disable --now netdata 2>/dev/null || true
apt-get remove -y netdata 2>/dev/null || true

rm -f /usr/local/bin/agent-guard /usr/local/bin/agentctl /usr/local/bin/run-agent /usr/local/bin/run-build
rm -rf /opt/system-monitor
rm -f /etc/system-monitor/agent-guard.toml
rmdir /etc/system-monitor 2>/dev/null || true
rm -f /etc/tmpfiles.d/system-monitor-tmp.conf
rm -f /etc/systemd/system/agents.slice /etc/systemd/system/builds.slice
rm -f /etc/netdata/netdata.conf /etc/netdata/stream-and-cloud-disabled.conf /etc/netdata/health_alarm_notify.conf
rm -f /etc/netdata/health.d/mem_trajectory.conf /etc/netdata/health.d/tmpfs_guard.conf /etc/netdata/health.d/cpu_runaway.conf /etc/netdata/health.d/proc_fd.conf /etc/netdata/health.d/disk_fill.conf
rm -f /usr/libexec/netdata/plugins.d/mem_trajectory.plugin /usr/libexec/netdata/plugins.d/tmpfs_guard.plugin /usr/libexec/netdata/plugins.d/cpu_runaway.plugin /usr/libexec/netdata/plugins.d/proc_fd.plugin
rm -f /usr/libexec/netdata/plugins.d/disk_guard.plugin
rm -f /usr/lib/netdata/plugins.d/mem_trajectory.plugin /usr/lib/netdata/plugins.d/tmpfs_guard.plugin /usr/lib/netdata/plugins.d/cpu_runaway.plugin /usr/lib/netdata/plugins.d/proc_fd.plugin /usr/lib/netdata/plugins.d/disk_guard.plugin
systemctl daemon-reload

if [ "${1:-}" = "--restore-retired" ]; then
  install -d -m 0755 -o "$TARGET_USER" -g "$TARGET_USER" "$user_home/.local/bin" "$user_home/.config/systemd/user"
  for p in mem-pressure-notify disk-fill-notify; do
    if [ -e "$STATE_DIR/retired/$p" ]; then
      install -m 0755 -o "$TARGET_USER" -g "$TARGET_USER" "$STATE_DIR/retired/$p" "$user_home/.local/bin/$p"
      echo "restored $p"
    fi
  done
  if [ -e "$STATE_DIR/retired/mem-pressure-notify.service" ]; then
    install -m 0644 -o "$TARGET_USER" -g "$TARGET_USER" "$STATE_DIR/retired/mem-pressure-notify.service" "$user_home/.config/systemd/user/mem-pressure-notify.service"
  fi
fi

echo "system-monitor uninstall complete; root oomd/caps/swappiness settings untouched"
