Make python script runnable from anywhere
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
PyYAML==6.0.3
|
||||
requests==2.32.5
|
||||
Jinja2==3.1.6
|
||||
GitPython==3.1.45
|
||||
|
||||
22
tools/render
22
tools/render
@@ -6,15 +6,25 @@ import functools
|
||||
import json
|
||||
import pathlib
|
||||
|
||||
import git
|
||||
import requests
|
||||
import yaml
|
||||
from jinja2 import Environment, FileSystemLoader, StrictUndefined, Template
|
||||
|
||||
NODES = pathlib.Path("nodes")
|
||||
SCHEMATICS = pathlib.Path("schematics")
|
||||
RENDERED = pathlib.Path("rendered")
|
||||
PATCHES = Environment(loader=FileSystemLoader("patches"), undefined=StrictUndefined)
|
||||
TEMPLATES = Environment(loader=FileSystemLoader("templates"), undefined=StrictUndefined)
|
||||
REPO = git.Repo(".", search_parent_directories=True)
|
||||
assert REPO.working_dir is not None
|
||||
|
||||
ROOT = pathlib.Path(REPO.working_dir)
|
||||
|
||||
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):
|
||||
@@ -112,7 +122,7 @@ def main():
|
||||
# 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))))
|
||||
|
||||
with open("config.yaml") as fyaml:
|
||||
with open(ROOT.joinpath("config.yaml")) as fyaml:
|
||||
config = yaml.safe_load(fyaml)
|
||||
|
||||
RENDERED.mkdir(exist_ok=True)
|
||||
|
||||
Reference in New Issue
Block a user