summaryrefslogtreecommitdiff
path: root/docs/api/schemas/generate-schemas.py
diff options
context:
space:
mode:
Diffstat (limited to 'docs/api/schemas/generate-schemas.py')
-rwxr-xr-xdocs/api/schemas/generate-schemas.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/docs/api/schemas/generate-schemas.py b/docs/api/schemas/generate-schemas.py
new file mode 100755
index 0000000..09e6c44
--- /dev/null
+++ b/docs/api/schemas/generate-schemas.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python3
+
+import os
+
+import jinja2
+
+ROOT_DIR = os.path.dirname(os.path.realpath(__file__))
+VERSIONS = [(1, 0), (1, 1), (1, 2), None]
+LATEST_VERSION = (1, 2)
+
+
+def generate_schema():
+ env = jinja2.Environment(
+ loader=jinja2.FileSystemLoader(ROOT_DIR),
+ trim_blocks=True,
+ lstrip_blocks=True)
+ template = env.get_template('patchwork.j2')
+
+ for version in VERSIONS:
+ version_dir = os.path.join(
+ ROOT_DIR, 'v%d.%d' % version if version else 'latest')
+
+ if not os.path.exists(version_dir):
+ os.mkdir(version_dir)
+
+ version_str = '%d.%d' % (version or LATEST_VERSION)
+ version_url = '%d.%d/' % version if version else ''
+ version = version or LATEST_VERSION
+
+ with open(os.path.join(version_dir, 'patchwork.yaml'), 'wb') as fh:
+ template.stream(version=version, version_str=version_str,
+ version_url=version_url).dump(fh, encoding='utf-8')
+ fh.write(b'\n')
+
+
+if __name__ == '__main__':
+ generate_schema()