#!/usr/bin/env python3
import argparse
import json
import logging
import sys

import ebosia.sync

LOGGER = logging.getLogger('emitter')

def _on_event(event):
    LOGGER.info("Event: %s", event)

def main():
    logging.basicConfig()
    logging.getLogger().setLevel(logging.DEBUG)

    parser = argparse.ArgumentParser()

    parser.add_argument('-t', '--topic', default='dev-eventbus', help="The SNS topic name to subscribe to")
    parser.add_argument('-s', '--subject', default='test', help="The subject of the event to emit")
    parser.add_argument('-c', '--content', default='{"hello":"world"}', help="a JSON string that will be sent as the content of the event")
    args = parser.parse_args()

    try:
        content = json.loads(args.content)
    except ValueError as e:
        LOGGER.error("Cannot parse %s as JSON: %s", args.content, e)
        return -1

    ebosia.sync.connect('amqp://guest:guest@localhost')
    ebosia.sync.publish(args.topic, content)

if __name__ == "__main__":
    sys.exit(main())
