#!/usr/bin/env python3
"""
Interacts with felix-bus

Usage:
    felix-bus [options] <fid>

Options:
    -b, --bus-dir DIRECTORY         Directory for the bus [default: ./bus]
    -g, --bus-groupname GROUP_NAME  Group Name to use [default: FELIX]
    -v, --verbose                   Verbose output

Arguments:
    <fid>           FID to look up
"""
import errno
import os
import socket
import sys
import time

# add the ../python path to find felix python libs
sys.path.append(os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'python'))

from docopt import docopt  # noqa: E402

from libfelix_bus_py import FelixBus, FelixBusInfo  # noqa: E402

from felixtag import FELIX_TAG


if __name__ == "__main__":
    """felix-bus."""
    args = docopt(__doc__, version=sys.argv[0] + " " + FELIX_TAG)

    bus_dir = args["--bus-dir"]
    bus_groupname = args["--bus-groupname"]
    verbose = args['--verbose']

    fid = int(args['<fid>'], 0)

    bus = FelixBus()
    bus.set_path(bus_dir)
    bus.set_groupname(bus_groupname)
    bus.set_verbose(verbose)

    try:
        info = bus.get_info(fid)
        print("bus:", info.ip, info.port, info.unbuffered, info.pubsub, info.netio_pages, info.netio_pagesize)
    except RuntimeError:
        exit(1)
