app-dev/jamstack-frameworks-cloudrun/_data/generate.py (33 lines of code) (raw):

from pathlib import Path import yaml from jinja2 import Environment, FileSystemLoader, select_autoescape templateLoader = FileSystemLoader(searchpath="templates/") env = Environment(loader=templateLoader, autoescape=select_autoescape()) frameworks = sorted(Path("data").glob("*.yml")) firebase_path = Path("../../jamstack-frameworks-firebase-hosting") gcr_path = Path("../") readme_md = "README.md" template = env.get_template("deployment.md.j2") gcr_readme = env.get_template("cloudrun.md.j2") firebase_readme = env.get_template("firebase.md.j2") gcr_framework_list = [] firebase_framework_list = [] for config in frameworks: framework = config.stem with open(config) as f: data = yaml.safe_load(f.read()) if "skip_cloudrun" not in data.keys(): gcr_framework_list.append((data["name"], framework, data["language"])) Path(gcr_path/ framework).mkdir(exist_ok=True) with open(gcr_path / framework / readme_md, "w") as f: f.write(template.render(**data, platform="Cloud Run")) if "skip_firebase" not in data.keys(): firebase_framework_list.append((data["name"], framework, data["language"])) Path(firebase_path/ framework).mkdir(exist_ok=True) with open(firebase_path / framework / readme_md, "w") as f: f.write(template.render(**data, platform="Firebase")) with open(gcr_path / readme_md, "w") as f: f.write(gcr_readme.render(frameworks=gcr_framework_list)) with open(firebase_path / readme_md, "w") as f: f.write(firebase_readme.render(frameworks=firebase_framework_list)) print(f"Wrote out {len(gcr_framework_list) + len(firebase_framework_list)} demos. ({len(gcr_framework_list)} for Cloud Run, { len(firebase_framework_list)} for Firebase Hosting)")