Last active 1 month ago

nuno revised this gist 1 month ago. Go to revision

1 file changed, 41 insertions

gistfile1.txt(file created)

@@ -0,0 +1,41 @@
1 + local filter_peer="" filter_service="" filter_ip="" filter_type=""
2 + local hours=24
3 + local accept_only=false drop_only=false external_only=false
4 +
5 + while [[ $# -gt 0 ]]; do
6 + case "$1" in
7 + --peer) filter_peer="$2"; shift 2 ;;
8 + --service) filter_service="$2"; shift 2 ;;
9 + --ip) filter_ip="$2"; shift 2 ;;
10 + --type) filter_type="$2"; shift 2 ;;
11 + --hours) hours="$2"; shift 2 ;;
12 + --accept) accept_only=true; shift ;;
13 + --drop) drop_only=true; shift ;;
14 + --external) external_only=true; shift ;;
15 + --help) cmd::activity::help; return ;;
16 + *)
17 + log::error "Unknown flag: $1"
18 + cmd::activity::help
19 + return 1
20 + ;;
21 + esac
22 + done
23 +
24 + if command::json; then
25 + cmd::activity::_output_json "$hours"
26 + return 0
27 + fi
28 +
29 + if [[ -n "$filter_peer" && -n "$filter_type" ]]; then
30 + filter_peer=$(peers::resolve_and_require "$filter_peer" "$filter_type") || return 1
31 + fi
32 +
33 + local service_ip=""
34 + if [[ -n "$filter_service" ]]; then
35 + service_ip=$(net::resolve "$filter_service" 2>/dev/null | head -1 | cut -d: -f1) || true
36 + [[ -z "$service_ip" ]] && log::error "Service not found: ${filter_service}" && return 1
37 + fi
38 + [[ -n "$filter_ip" ]] && service_ip="$filter_ip"
39 +
40 + # ── Fetch data ──
41 + local data=""
Newer Older