#!/usr/bin/env python3
import json
import os
import sys
from pathlib import Path
from tempfile import TemporaryDirectory

from cookiecutter.main import cookiecutter

with open(".cookiecutter/cookiecutter.json", "r", encoding="utf-8") as cookiecutter_json_file:
    config = json.loads(cookiecutter_json_file.read())

extra_context = config.get("extra_context", {})
extra_context["__ignore__"] = config.get("ignore", [])
extra_context["__target_dir__"] = Path(os.getcwd())

with TemporaryDirectory() as tmpdirname:
    cookiecutter(
        template=sys.argv[1] if len(sys.argv) >= 2 else config["template"],
        directory=config["directory"],
        extra_context=extra_context,
        no_input=True,
        overwrite_if_exists=True,
        output_dir=tmpdirname,
    )
