#!/usr/bin/env python
from __future__ import print_function, absolute_import, division
import argparse
import logging

from aws_certificate_management import setup_certificate, cleanup


def setup_logging(log_level):
    log_level = log_level or "INFO"
    logging.getLogger('aws-certificate-management').setLevel(log_level)
    logging.getLogger('cfn_sphere').setLevel(log_level)


def main():
    parser = argparse.ArgumentParser(
        description='Tool to create AWS certificates')
    parser.add_argument('-v', '--verbose', dest='log_level',
                        action='store_const', const="DEBUG")
    parser.add_argument('-q', '--quiet', dest='log_level',
                        action='store_const', const="WARN")
    parser.add_argument('--region', dest='region', default='eu-west-1',
                        help='For which region the certificate is created '
                             '(default is eu-west-1)')
    parser.add_argument('domain',
                        help=('For which domain you need a certificate. '
                              'Can also be a wildcard like "*.foo.bar"'))
    parser.add_argument('-c', '--cleanup', dest='cleanup', action='store_true',
                        help=('Clean up stacks and resources that are only '
                              'needed to request the certificate'))

    args = parser.parse_args()

    setup_logging(args.log_level)
    if args.cleanup:
        cleanup(args.domain)
    else:
        setup_certificate(args.domain, args.region)


if __name__ == "__main__":
    main()
