Make python script runnable from anywhere
This commit is contained in:
@@ -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
|
||||||
|
|||||||
22
tools/render
22
tools/render
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user