#!python

import os
import sys
from argparse import ArgumentParser

MY_DIRECTORY = os.path.abspath(os.path.dirname(__file__))
sys.path.append(
    os.path.abspath(os.path.join(MY_DIRECTORY, '..'))
)

from cauldron.cli.shell import CauldronShell
from cauldron.cli.commands import version
from cauldron import environ
from cauldron.cli.commands import open
from cauldron.cli.commands import run
from cauldron.cli.commands import close


parser = ArgumentParser(
    description='Cauldron'
)

parser.add_argument(
    '-v', '--version',
    dest='version',
    default=False,
    action='store_true'
)

parser.add_argument(
    '-r', '--run',
    dest='run',
    type=str,
    default=None
)

args = parser.parse_args()

if args.version:
    data = version.get_package_data()
    print('VERSION: {}'.format(data['version']))
    sys.exit(0)

if args.run:
    run_path = environ.paths.clean(args.run)
    environ.log('Running: {}'.format(run_path))
    open.execute(parser, run_path)
    run.execute(parser, None)
    close.execute(parser)
    environ.log('Run Complete')
    sys.exit(0)



CauldronShell().cmdloop()
