Files
compose_gen/src/main.py
2025-12-14 18:14:07 -06:00

34 lines
1016 B
Python

from collections.abc import Iterable, Iterator
from cfg import CFG_ROOT
from cfg.factory import cfg_data_factory
from compose.factory import compose_factory, traefik_compose_factory
from rendered.entity import Rendered
from rendered.factory import rendered_factory
from rendered.util import write
from src_path.entity import src_paths_factory
from template.factory import template_factory
def load_all() -> Iterable[Rendered]:
for dir in CFG_ROOT.iterdir():
paths = src_paths_factory(dir)
cfg = cfg_data_factory(paths)
parsed = compose_factory(cfg)
for template in template_factory(parsed):
yield rendered_factory(template)
def render_all() -> Iterator[Rendered]:
for rendered in load_all():
write(rendered)
yield rendered
if __name__ == "__main__":
renders = render_all()
traefik = traefik_compose_factory(renders)
for template in template_factory(traefik):
rendered = rendered_factory(template)
write(rendered)