summaryrefslogtreecommitdiff
path: root/boards/generate.py
diff options
context:
space:
mode:
Diffstat (limited to 'boards/generate.py')
-rw-r--r--boards/generate.py38
1 files changed, 37 insertions, 1 deletions
diff --git a/boards/generate.py b/boards/generate.py
index 13c7d72..95d5460 100644
--- a/boards/generate.py
+++ b/boards/generate.py
@@ -1,8 +1,42 @@
-import json, sys
+import json, os, re, subprocess, sys
from datetime import datetime
from pathlib import Path
+DEAL_CONVERT_PATH = os.environ.get('LIGA_BOARDS_DEAL_CONVERT_PATH')
+PBN_EVENT_TAG = re.compile('\[Event ".*"\]')
+
+
+def deal_convert(source_file, target_files, params=''):
+ command = 'python2 %s %s %s %s' % (DEAL_CONVERT_PATH, params, source_file, ' '.join(target_files))
+ try:
+ subprocess.check_output(command, stderr=subprocess.STDOUT, universal_newlines=True, shell=True)
+ except subprocess.CalledProcessError as ex:
+ print('ERROR: %s' % (ex.output), file=sys.stderr)
+
+
+def ensure_pbn(source_id, config_name, event_name):
+ target_path = Path('output') / config_name / 'files' / (source_id + '.pbn')
+ if target_path.exists():
+ return
+ source_path = Path('pbns') / config_name / (source_id + '.pbn')
+ target_path.parent.mkdir(parents=True, exist_ok=True)
+ deal_convert(str(source_path), [str(target_path)], '--jfr')
+ with open(target_path) as target_file:
+ pbn_content = target_file.read()
+ pbn_content = re.sub(PBN_EVENT_TAG, '[Event "%s"]' % (event_name), pbn_content)
+ with open(target_path, 'w') as target_file:
+ target_file.write(pbn_content)
+
+
+def ensure_pdf(source_id, config_name):
+ target_path = Path('output') / config_name / 'files' / (source_id + '.pdf')
+ if target_path.exists():
+ return
+ source_path = Path('output') / config_name / 'files' / (source_id + '.pbn')
+ deal_convert(str(source_path), [str(target_path)])
+
+
config_dir = Path('config')
for config_path in config_dir.glob('*.json'):
config_name = config_path.stem
@@ -22,6 +56,8 @@ for config_path in config_dir.glob('*.json'):
set_content = '<tr><td class="bdcc1" colspan="3">%s</td></tr>' % (dealset['title'])
for pbn in dealset['files']:
if pbn.get('enabled', 0):
+ ensure_pbn(pbn['path'], config_name, pbn['title'])
+ ensure_pdf(pbn['path'], config_name)
set_enabled = True
set_content += '<tr>'
set_content += '<td class="bd1">%s</td>' % (pbn['name'])