Compare commits

..

2 Commits

Author SHA1 Message Date
b13de416ca Make python script runable from anywhere 2025-11-08 06:22:42 +01:00
961f3640a4 Render all template using python and jinja 2025-11-08 06:16:39 +01:00
2 changed files with 17 additions and 7 deletions

View File

@@ -1,3 +1,4 @@
PyYAML==6.0.3 PyYAML==6.0.3
requests==2.32.5 requests==2.32.5
Jinja2==3.1.6 Jinja2==3.1.6
GitPython==3.1.45

View File

@@ -4,18 +4,27 @@
import functools import functools
import json import json
import os
import pathlib import pathlib
import git
import requests import requests
import yaml import yaml
from jinja2 import Environment, FileSystemLoader, StrictUndefined, Template from jinja2 import Environment, FileSystemLoader, StrictUndefined, Template
NODES = pathlib.Path("nodes") REPO = git.Repo(".", search_parent_directories=True)
SCHEMATICS = pathlib.Path("schematics") assert REPO.working_dir is not None
RENDERED = pathlib.Path("rendered")
PATCHES = Environment(loader=FileSystemLoader("patches"), undefined=StrictUndefined) ROOT = pathlib.Path(REPO.working_dir)
TEMPLATES = Environment(loader=FileSystemLoader("templates"), undefined=StrictUndefined)
NODES = ROOT.joinpath("nodes")
SCHEMATICS = ROOT.joinpath("schematics")
RENDERED = ROOT.joinpath("rendered")
PATCHES = Environment(
loader=FileSystemLoader(ROOT.joinpath("patches")), undefined=StrictUndefined
)
TEMPLATES = Environment(
loader=FileSystemLoader(ROOT.joinpath("templates")), undefined=StrictUndefined
)
def node_encoder(node: dict): def node_encoder(node: dict):
@@ -113,7 +122,7 @@ def main():
# Quick and dirty way to resolve all the templates using a custom encoder # Quick and dirty way to resolve all the templates using a custom encoder
final_nodes.append(json.loads(json.dumps(node, cls=node_encoder(node)))) final_nodes.append(json.loads(json.dumps(node, cls=node_encoder(node))))
with open("config.yaml") as fyaml: with open(ROOT.joinpath("config.yaml")) as fyaml:
config = yaml.safe_load(fyaml) config = yaml.safe_load(fyaml)
RENDERED.mkdir(exist_ok=True) RENDERED.mkdir(exist_ok=True)