Make python script runable from anywhere

This commit is contained in:
2025-11-08 06:22:42 +01:00
parent 87725ac9d0
commit a5f8f2904f
2 changed files with 17 additions and 6 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

@@ -6,15 +6,25 @@ import functools
import json import json
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):
@@ -112,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)