summaryrefslogtreecommitdiff
path: root/src/auditor/taler-helper-auditor-render.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/auditor/taler-helper-auditor-render.py')
-rwxr-xr-xsrc/auditor/taler-helper-auditor-render.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/auditor/taler-helper-auditor-render.py b/src/auditor/taler-helper-auditor-render.py
new file mode 100755
index 000000000..4b086cb62
--- /dev/null
+++ b/src/auditor/taler-helper-auditor-render.py
@@ -0,0 +1,56 @@
+#!/usr/bin/python3
+# This file is in the public domain.
+
+"""Expand Jinja2 templates based on JSON input.
+
+First command-line argument must be the JSON input from taler-auditor.
+Second command-line argument must be the JSON input from the
+taler-wire-auditor.
+
+The tool then reads the template from stdin and writes the expanded
+output to stdout.
+
+TODO: proper installation, man page, error handling, --help option.
+
+@author Christian Grothoff
+
+"""
+
+import sys
+import json
+import jinja2
+from jinja2 import BaseLoader
+
+
+class StdinLoader(BaseLoader):
+ def __init__ (self):
+ self.path = '-'
+ def get_source(self, environment, template):
+ source = sys.stdin.read()
+ return source, self.path, lambda: false
+
+
+jsonFile1 = open (sys.argv[1], 'r')
+jsonData1 = json.load(jsonFile1)
+
+jsonFile2 = open (sys.argv[2], 'r')
+jsonData2 = json.load(jsonFile2)
+
+jsonFile3 = open (sys.argv[3], 'r')
+jsonData3 = json.load(jsonFile3)
+
+jsonFile4 = open (sys.argv[4], 'r')
+jsonData4 = json.load(jsonFile4)
+
+jsonFile5 = open (sys.argv[5], 'r')
+jsonData5 = json.load(jsonFile5)
+
+
+jinjaEnv = jinja2.Environment(loader=StdinLoader(),
+ lstrip_blocks=True,
+ trim_blocks=True,
+ undefined=jinja2.StrictUndefined,
+ autoescape=False)
+tmpl = jinjaEnv.get_template('stdin');
+
+print(tmpl.render(aggregation = jsonData1, coins = jsonData2, deposits = jsonData3, reserves = jsonData4, wire = jsonData5))