#!/usr/bin/env python3
#
# Log AP connectivity status and connected WiFi clients.

import sys
import datetime
import subprocess

log_to_blockgraph = True

HELP_MSG = """
Usage: log-ap-status [OPTIONS]

Options:
  -h, --help    Print usage and exit
  -c, --stdout  Write to stdout only, not blockgraph
"""

for arg in sys.argv[1:]:
    if arg in ('-h', '--help', 'help'):
        print(HELP_MSG)
        sys.exit(0)
    elif arg in ('-c', '--stdout'):
        ts = datetime.datetime.now()
        print("time: {\"ts\": \"" + ts.strftime("%Y-%m-%d %H:%M:%S.%f") + "\"}")
        log_to_blockgraph = False
    else:
        print(f'Invalid argument "{arg}"')
        sys.exit(1)


def writedatalog(location, msg):
    if log_to_blockgraph:
        subprocess.run(["bgsystemlog", "-j", location, "-m", msg], check=False)
    else:
        print(f"{location}: {msg}")


r = subprocess.run(["/var/signalytic/bin/ap-status"], capture_output=True, text=True)
if r.returncode != 0 or not r.stdout.strip():
    sys.exit(1)

writedatalog("ap", r.stdout.strip())