32 lines
813 B
Plaintext
Executable File
32 lines
813 B
Plaintext
Executable File
#!/usr/bin/env python3
|
|
|
|
import os
|
|
import time
|
|
import subprocess
|
|
import json
|
|
import hswro
|
|
|
|
def sizeof_fmt(num, suffix="B"):
|
|
for unit in ("", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi"):
|
|
if abs(num) < 1024.0:
|
|
return f"{num:3.1f}{unit}{suffix}"
|
|
num /= 1024.0
|
|
return f"{num:.1f}Yi{suffix}"
|
|
|
|
|
|
status_raw = subprocess.run(["/home/reticulum/venv/bin/rnstatus", "-j"], capture_output=True)
|
|
status = json.loads(status_raw.stdout)
|
|
|
|
hswro.header("Node Status")
|
|
print("> Interfaces")
|
|
|
|
for i in status['interfaces']:
|
|
print(">> ", i['short_name'])
|
|
print("`!Clients:`! ", i['clients'])
|
|
print("`!Current RX:`! ", i['rxs'])
|
|
print("`!Current TX:`! ", i['txs'])
|
|
print("`!Total RX:`! ", sizeof_fmt(i['rxb']))
|
|
print("`!Total TX:`! ", sizeof_fmt(i['txb']))
|
|
|
|
hswro.footer()
|