Added file_size and file_content_hex Jinja filters.

Added check if Jinja module exists and appropriate error message to
project generation.
This commit is contained in:
2025-03-28 11:35:39 +01:00
parent 5f11d64744
commit 2769fd801f
2 changed files with 16 additions and 1 deletions

View File

@@ -31,8 +31,19 @@ def _wrap_jinja(orig_jinja):
return target
return _wrapped
def _file_size(env, fname: str) -> int:
return env.File(fname).get_size()
def _file_content_hex(env, fname: str) -> str:
bytes = env.File(fname).get_contents()
return ','.join([hex(byte) for byte in bytes])
env.AddMethod(_wrap_jinja(env.Jinja), 'Jinja')
env.Append(JINJA_FILTERS = {'load_config': _jinja_load_config})
env.Append(JINJA_GLOBALS = {
'file_size': lambda *args: _file_size(env, *args),
'file_content_hex': lambda *args: _file_content_hex(env, *args)
})
env.Append(JINJA_TEMPLATE_SEARCHPATH = ['data/jinja'])
env['JINJA_CONFIG_SEARCHPATH'] = [env.Dir('#data/config')]
Return('env')