This commit is contained in:
2025-12-14 18:14:07 -06:00
parent 9d45d5db88
commit a0b6e00a31
38 changed files with 969 additions and 932 deletions

View File

@@ -1,23 +1,33 @@
from typing import Any, Generator
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
from collections.abc import Iterator
from Ts import TraefikComposeDict, TraefikNet, TraefikNetName
from compose import gen_compose
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__":
paths: tuple[str, ...] = ("gitea", "opencloud", "jellyfin", "immich")
def sub() -> Iterator[tuple[str, str]]:
for path in paths:
yield from gen_compose(path)
# yield name, TraefikNetName(name=proxy)
networks: TraefikNet = dict(sub())
traefik = ComposeBuild("traefik").build()
traefik_compose = TraefikComposeDict(
name="traefik",
networks=networks,
)
renders = render_all()
traefik = traefik_compose_factory(renders)
for template in template_factory(traefik):
rendered = rendered_factory(template)
write(rendered)