#!/usr/bin/env python3

import botocore
import aws_cloudwatch_logs_utils.cloudwatch_logs as cloudwatch_logs
import argparse


def main():
    try:
        parser = argparse.ArgumentParser()
        parser.add_argument("--startTime", type=cloudwatch_logs.valid_time,
                            help="Start time in format \"YYYY-MM-DDTHH:MM:SS+HHMM\" or timestamp")
        parser.add_argument("--endTime", type=cloudwatch_logs.valid_time,
                            help="End time time in format \"YYYY-MM-DDTHH:MM:SS+HHMM\" or timestamp")

        params = cloudwatch_logs.parse_common_params(parser)

        args = parser.parse_args()

        params['start_time'] = args.startTime
        params['end_time'] = args.endTime

        cloudwatch_logs.logs_cat(**params, no_timestamp=args.no_timestamp)

    except (botocore.exceptions.ClientError, botocore.exceptions.ParamValidationError,
            cloudwatch_logs.LogStreamNotFoundError, cloudwatch_logs.TooManyLogStreamsMatched) as e:
        print("Error: {}".format(e))
        exit(1)

    except BrokenPipeError:
        exit(0)

    except KeyboardInterrupt:
        exit(2)


if __name__ == '__main__':
    main()
