Make python script runnable from anywhere

This commit is contained in:
2025-11-08 06:22:42 +01:00
parent d30b080098
commit 121f28e987
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)