2023-11-04 18:32:56 +01:00

44 lines
1.0 KiB
Python

import asyncio
from genericpath import isdir, isfile
import os
import shutil
import click
from app.config import load_config
from app.dependencies import wire_dependencies
from app.generator import get_generators
@click.command()
def generate():
config = load_config()
wire_dependencies()
purge(config["purge"])
generators = get_generators()
loop = asyncio.get_event_loop()
tasks = []
output = config["output"]
for generator_config in config["configs"]:
for generator_name in generator_config["generators"]:
generator = generators[generator_name] if generator_name in generators else None
tasks.append(
loop.create_task(generator.generate(generator_config, output))
) if generator is not None else print(f"Generator {generator_name} not found.")
loop.run_until_complete(asyncio.wait(tasks))
loop.close()
def purge(paths):
for path in paths:
if isdir(path):
shutil.rmtree(path)
elif isfile(path):
os.remove(path)