gistfile1.txt
· 1.3 KiB · Text
Исходник
local filter_peer="" filter_service="" filter_ip="" filter_type=""
local hours=24
local accept_only=false drop_only=false external_only=false
while [[ $# -gt 0 ]]; do
case "$1" in
--peer) filter_peer="$2"; shift 2 ;;
--service) filter_service="$2"; shift 2 ;;
--ip) filter_ip="$2"; shift 2 ;;
--type) filter_type="$2"; shift 2 ;;
--hours) hours="$2"; shift 2 ;;
--accept) accept_only=true; shift ;;
--drop) drop_only=true; shift ;;
--external) external_only=true; shift ;;
--help) cmd::activity::help; return ;;
*)
log::error "Unknown flag: $1"
cmd::activity::help
return 1
;;
esac
done
if command::json; then
cmd::activity::_output_json "$hours"
return 0
fi
if [[ -n "$filter_peer" && -n "$filter_type" ]]; then
filter_peer=$(peers::resolve_and_require "$filter_peer" "$filter_type") || return 1
fi
local service_ip=""
if [[ -n "$filter_service" ]]; then
service_ip=$(net::resolve "$filter_service" 2>/dev/null | head -1 | cut -d: -f1) || true
[[ -z "$service_ip" ]] && log::error "Service not found: ${filter_service}" && return 1
fi
[[ -n "$filter_ip" ]] && service_ip="$filter_ip"
# ── Fetch data ──
local data=""
| 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="" |
| 42 |