function cmd::remove::_cleanup() { local name="${1:-}" client_ip="${2:-}" was_blocked="${3:-false}" [[ -n "$client_ip" ]] && fw::flush_peer "$client_ip" peers::remove_from_server "$name" || return 1 peers::remove_client_config "$name" || return 1 keys::remove "$name" || return 1 # Remove from all groups while IFS= read -r group_name; do group::remove_peer "$group_name" "$name" log::debug "Removed from group: ${group_name}" done < <(json::peer_groups "$(ctx::groups)" "$name") [[ -n "$client_ip" ]] && $was_blocked && fw::unblock_all "$client_ip" fw::remove_block_file "$name" 2>/dev/null || true peers::remove_meta "$name" 2>/dev/null || true peers::reload || return 1 }