kappa 1.73 KB
#!/usr/bin/env python
# Copyright (c) 2014 Mitch Garnaat http://garnaat.org/
#
# Licensed under the Apache License, Version 2.0 (the "License"). You
# may not use this file except in compliance with the License. A copy of
# the License is located at
#
# http://aws.amazon.com/apache2.0/
#
# or in the "license" file accompanying this file. This file is
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
# ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.
import logging

import click

from kappa.context import Context


@click.command()
@click.option(
    '--config',
    help="Path to the Kappa config YAML file",
    type=click.File('rb'),
    envvar='KAPPA_CONFIG',
    default=None
)
@click.option(
    '--debug/--no-debug',
    default=False,
    help='Turn on debugging output'
)
@click.argument(
    'command',
    required=True,
    type=click.Choice(['deploy', 'test', 'tail', 'add-event-sources', 'delete'])
)
def main(config=None, debug=False, command=None):
    ctx = Context(config, debug)
    if command == 'deploy':
        click.echo('Deploying ...')
        ctx.deploy()
        click.echo('...done')
    elif command == 'test':
        click.echo('Sending test data ...')
        ctx.test()
        click.echo('...done')
    elif command == 'tail':
        events = ctx.tail()
        for event in events:
            print(event['message'])
    elif command == 'delete':
        click.echo('Deleting ...')
        ctx.delete()
        click.echo('...done')
    elif command == 'add-event-sources':
        click.echo('Adding event sources ...')
        ctx.add_event_sources()
        click.echo('...done')


if __name__ == '__main__':
    main()