#! /usr/bin/env python3


import sys
import os
import optparse
import logging

# Get the parent directory (mg root) of the script real path (bin)
# and add it to the current PYTHONPATH

root_path = os.path.split(os.path.dirname(os.path.realpath( __file__ )))[0]
sys.path.insert(0, os.path.join(root_path, 'aloha'))
sys.path.insert(0, root_path)





usage = "usage: %prog UFO_PATH format [options]"
parser = optparse.OptionParser(usage=usage)
parser.add_option("-l", "--logging", default='INFO',
                  help="logging level (DEBUG|INFO|WARNING|ERROR|CRITICAL) [%default]")
parser.add_option("-f", "--format", default='Fortran',
                  help="output format (Fortran|Python|CPP) [%default]")                 
parser.add_option("-o", "--output_dir", default='', dest = 'output_dir',
                  help="directory where to write the routine")

(options, args) = parser.parse_args()
if len(args) != 1:
    sys.exit('ALOHA requires exactly one argument (the path to UFO directory)')
    
# Set logging level according to the logging level given by options
logging.basicConfig(level=vars(logging)[options.logging])

# Add UFO Model Path to SYSpath
ufo_path, ufo_name =os.path.split(os.path.realpath(args[0]))
sys.path.insert(0, ufo_path)

#prepare writing directory
if not options.output_dir:
    output_dir = os.path.join(args[0],options.format)
    print 'files will be written in path: ' + output_dir
else:
    output_dir = options.output_dir
    print 'files will be written in path: ' + output_dir
if not os.path.exists(output_dir):
    os.mkdir(output_dir)
    
import create_aloha as create_aloha
 
#call aloha
create_aloha.AbstractALOHAModel(ufo_name, write_dir=output_dir, format=options.format)
 



    
