function cmd::group::_logs_impl() { local name="$1" limit="$2" since="$3" fw="$4" wg="$5" local peers_list=() mapfile -t peers_list < <(group::peers "$name") [[ -z "${peers_list[0]:-}" ]] && \ log::wg_warning "Group '${name}' has no peers" && return 0 load_command logs log::section "Logs: group ${name}"; echo "" for peer in "${peers_list[@]}"; do [[ -z "$peer" ]] && continue local filter_ip; filter_ip=$(peers::get_ip "$peer") local fw_out="" wg_out="" [[ "$wg" != "true" ]] && fw_out=$(cmd::logs::show_fw_events \ "$filter_ip" "$peer" "" "$limit" "$(ctx::net)" \ "1" "$since" "" "" "desc" "false" 2>/dev/null) [[ "$fw" != "true" ]] && wg_out=$(cmd::logs::show_wg_events \ "$filter_ip" "$peer" "" "$limit" \ "1" "$since" "" "desc" "false" 2>/dev/null) [[ -z "$fw_out" && -z "$wg_out" ]] && continue printf " \033[1m%s\033[0m\n" "$peer" [[ -n "$fw_out" ]] && printf "%s\n" "$fw_out" [[ -n "$wg_out" ]] && printf "%s\n" "$wg_out" echo "" done }