#!/bin/zsh set -euo pipefail BIN_DIR="${HOME}/.local/bin" PLIST_PATH="${HOME}/Library/LaunchAgents/com.ultramesh.umnd.plist" HELPER_BIN="/Library/PrivilegedHelperTools/com.ultramesh.umn-helper" HELPER_PLIST="/Library/LaunchDaemons/com.ultramesh.umn-helper.plist" RESOLVER_PATH="/etc/resolver/mesh" TEMP_RESOLVER=$(mktemp) trap 'rm -f "${TEMP_RESOLVER}"' EXIT cat > "${TEMP_RESOLVER}" <<'EOF' # Managed by Ultra Mesh Network nameserver 127.0.0.1 port 53535 EOF launchctl bootout "gui/${UID}" "${PLIST_PATH}" >/dev/null 2>&1 || true [[ ! -e "${PLIST_PATH}" ]] || unlink "${PLIST_PATH}" [[ ! -e "${BIN_DIR}/umnd" ]] || unlink "${BIN_DIR}/umnd" [[ ! -e "${BIN_DIR}/umn" ]] || unlink "${BIN_DIR}/umn" sudo -v sudo launchctl bootout system "${HELPER_PLIST}" >/dev/null 2>&1 || true [[ ! -e "${HELPER_PLIST}" ]] || sudo unlink "${HELPER_PLIST}" [[ ! -e "${HELPER_BIN}" ]] || sudo unlink "${HELPER_BIN}" if [[ -e "${RESOLVER_PATH}" ]] && cmp -s "${TEMP_RESOLVER}" "${RESOLVER_PATH}"; then sudo unlink "${RESOLVER_PATH}"; fi echo "Binaries, LaunchAgent, LaunchDaemon, routes, interface, and managed resolver removed." echo "Identity and configuration were preserved in ~/Library/Application Support/UltraMesh."