diff options
-rw-r--r-- | .envrc | bin | 663 -> 738 bytes | |||
-rw-r--r-- | boards/.envrc | bin | 37 -> 47 bytes | |||
-rw-r--r-- | boards/generate.py | 38 |
3 files changed, 37 insertions, 1 deletions
Binary files differ diff --git a/boards/.envrc b/boards/.envrc Binary files differindex 7750527..4ab70fc 100644 --- a/boards/.envrc +++ b/boards/.envrc 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']) |