#!/usr/bin/env python

from __future__ import with_statement

import os
import sys

from chef_solo_cup import helpers
from chef_solo_cup.log import setup_custom_logger
from chef_solo_cup.parse_args import parse_args
from chef_solo_cup.version import version
from chef_solo_cup.commands.runner import run_in_serial, run_in_parallel

AWS_KEY = os.environ.get('AWS_KEY', None)
AWS_SECRET_KEY = os.environ.get('AWS_SECRET_KEY', None)


args = parse_args()
version(args)

logger = setup_custom_logger('chef-solo-cup', args)
hosts = helpers.get_hosts(args, logger=logger)

if args.dry_run:
    logger.info("Running in dry-run mode, commands will not be executed")

logger.info("Matched hosts: " + str(sorted(hosts.keys())))

if args.ip_address and len(hosts.keys()) > 1:
    sys.exit("You cannot specify --ip-address with more than 1 matching host")

if args.parallel and not args.ip_address:
    run_in_parallel(args, hosts, logger=logger)
else:
    run_in_serial(args, hosts, logger=logger)
