#!env python """ Convert a file to a c array bin2carray """ import os import os.path import sys def main(): """ Main script function """ if len(sys.argv) < 3: return -1 source_file = sys.argv[2] dest_file = sys.argv[1] print(f'{source_file} --> {dest_file}') with open(source_file, 'rb') as src: data = src.read() with open(dest_file, 'w', encoding='utf-8') as dest: header_guard = '_' + os.path.basename(dest_file).replace('.', '_').replace('-', '_') + '_H_' header_guard = header_guard.upper() dest.write(f'#ifndef {header_guard}\n') dest.write(f'#define {header_guard}\n') dest.write(f'static const char binary_blob[{len(data)}] = {{\n') for idx, current in enumerate(data, start=1): if idx % 4 == 0: dest.write(hex(current)+',\n') else: dest.write(hex(current)+',') dest.write('};\n') dest.write(f'#endif /* {header_guard} */\n') return 0 if __name__ == '__main__': sys.exit(main())