#!python
import argparse
import os
from generators import __version__
from generators.generate import generate
from rdflib import Graph


def dir_path(path):
    if os.path.isdir(path):
        return path
    else:
        raise argparse.ArgumentTypeError(f"{path} is not a valid path")


def parse_args():
    parser = argparse.ArgumentParser(description="Converting rdf model to system.")

    parser.add_argument("--version", action='version', version=f'%(prog)s (version {__version__})')
    parser.add_argument("--model", required=True, metavar="INPUT", help="model")
    parser.add_argument("--path", required=True, metavar="OUTPUT", type=dir_path, help="output directory")
    parser.add_argument("--sandbox", required=True, metavar="OUTPUT", type=dir_path, help="sandbox directory")
    args = parser.parse_args()
    return args.model, args.path, args.sandbox


model, root_path, sandbox_path = parse_args()

config = {
    "ROOT_DIRECTORY": root_path,
    "SANDBOX_DIRECTORY": sandbox_path
}


graph = Graph()
graph.parse(model)


generate(graph, config)
