#!/usr/bin/env python

import argparse
import logging
import sys

import bellatrix
import bellatrix.bewitch_ami
import bellatrix.burn_instance

FORMAT = '%(asctime)-15s %(levelname)s %(message)s'
logging.basicConfig(level=logging.INFO,
                    format=FORMAT,
                    #filename='out',
                    filemode='a'
                    )

def bewitch(args):
	logging.info("bewitching...")
	sys.exit(bellatrix.bewitch_ami.run(args.configuration))

def burn(args):
	logging.info("burning...")
	sys.exit(bellatrix.burn_instance.run(args.instance, args.image_name))


def main():
	# create the base parser with a subparsers argument
	parser = argparse.ArgumentParser(prog=bellatrix.APP.lower(), \
									description=bellatrix.description)
	parser.add_argument('--version', action='version', version=bellatrix.APP + " " + bellatrix.__version__)
	subparsers = parser.add_subparsers()
	
	parser_bewitch = subparsers.add_parser('bewitch', help='Applies a configuration to a running instance')
	parser_bewitch.add_argument('configuration', help='Python configuration file. E.g. ubuntu.py')
	parser_bewitch.set_defaults(func=bewitch)

#	parser_burn = subparsers.add_parser('burn', help='Burns a running instance into a new ami.')
#	parser_burn.add_argument('instance', help='Instance name. Something like: i-b63c98d4')
#	parser_burn.add_argument('image_name', help='Image name. A time stamp will be added to the name.')
#	parser_burn.set_defaults(func=burn)


	args = parser.parse_args()
	args.func(args)
	

if __name__ == "__main__":
	main()
