Dernière activité 1 month ago

gistfile1.txt Brut
1def follow_logs(fw_file, wg_file, filter_ip, filter_type, clients_dir, filter_peers=""):
2 """Follow both log files and output formatted events"""
3 import glob, time, select
4
5 proto_map = {1: 'icmp', 6: 'tcp', 17: 'udp'}
6 peer_filter = set(filter_peers.split(',')) if filter_peers else set()
7function cmd::group::watch() {
8 local name=""
9
10 while [[ $# -gt 0 ]]; do
11 case "$1" in
12 --name) util::require_flag "--name" "${2:-}" || return 1; name="$2"; shift 2 ;;
13 --help) cmd::group::help; return ;;
14 *) log::error "Unknown flag: $1"; return 1 ;;
15 esac
16 done
17
18 [[ -z "$name" ]] && log::error "Missing required flag: --name" && return 1
19 group::require_exists "$name" || return 1
20
21 local peers_list=()
22 mapfile -t peers_list < <(group::peers "$name")
23 [[ -z "${peers_list[0]}" ]] && log::wg_warning "Group '${name}' has no peers" && return 0
24
25 local peer_filter
26 peer_filter=$(IFS=','; echo "${peers_list[*]}")