29 lines
712 B
Bash
29 lines
712 B
Bash
#!/usr/bin/env bash
|
|
# List UniFi devices (APs, switches, gateway)
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "$SCRIPT_DIR/unifi-api.sh"
|
|
|
|
FORMAT="${1:-table}"
|
|
|
|
data=$(unifi_get "/api/s/$UNIFI_SITE/stat/device")
|
|
|
|
if [ "$FORMAT" = "json" ]; then
|
|
echo "$data"
|
|
else
|
|
# Table format
|
|
echo "$data" | jq -r '
|
|
["NAME", "MODEL", "IP", "STATE", "UPTIME", "CLIENTS"],
|
|
["----", "-----", "--", "-----", "------", "-------"],
|
|
(.data[] | [
|
|
.name // .mac,
|
|
.model,
|
|
.ip,
|
|
.state_name // .state,
|
|
(.uptime | if . then (. / 3600 | floor | tostring) + "h" else "N/A" end),
|
|
(.num_sta // 0 | tostring)
|
|
]) | @tsv
|
|
' | column -t -s $'\t'
|
|
fi
|