1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-09 17:10:17 +00:00
trezor-firmware/tools/res_collect

65 lines
1.5 KiB
Plaintext
Raw Normal View History

#!/usr/bin/env python3
import os
import io
resources = {}
2016-10-03 09:56:24 +00:00
resources_size = 0
os.chdir(os.path.dirname(__file__))
2016-09-26 13:13:33 +00:00
os.chdir('../src/')
def process_file(name):
if name.endswith('.gitignore'):
return
if name.endswith('.py'):
return
if os.path.basename(name).startswith('.'):
return
with open(name, 'rb') as f:
2016-10-03 09:56:24 +00:00
data = f.read()
resources[name] = data
print('processing file %s (%d bytes)' % (name, len(data)))
global resources_size
resources_size += len(data)
def process_dir_rec(dir):
for name in os.listdir(dir):
path = os.path.join(dir, name)
if os.path.isfile(path):
process_file(path)
elif os.path.isdir(path):
process_dir_rec(path)
process_dir_rec('trezor/res/')
for name in os.listdir('apps/'):
path = os.path.join('apps/', name, 'res/')
if os.path.isdir(path):
process_dir_rec(path)
2016-09-26 13:13:33 +00:00
resfile = 'trezor/res/resources.py'
bio = io.StringIO()
bio.write('resdata = {\n')
for k in sorted(resources.keys()):
bio.write(" '%s': %s,\n" % (k, resources[k]))
bio.write('}\n')
try:
with open(resfile, 'r') as f:
stale = f.read()
except:
stale = None
fresh = bio.getvalue()
if stale != fresh:
with open(resfile, 'wt') as f:
f.write(fresh)
print('written %s with %d entries (total %d bytes)' %
(resfile, len(resources), resources_size))
else:
print('continuing with %s, no changes detected' % (resfile))