#!env python # Convert a file to a c array # bin2carray import os import os.path import sys if len(sys.argv) < 3: sys.exit(-1) source_file = sys.argv[2] dest_file = sys.argv[1] print("%s --> %s" % (source_file, dest_file)) with open(source_file, "rb") as src: data = src.read() with open(dest_file, "w") as dest: header_guard = "__" + os.path.basename(dest_file).replace('.', '_').replace('-', '_') + "_H__" dest.write("#ifndef %s\n" % (header_guard)) dest.write("#define %s\n" % (header_guard)) dest.write("static const char binary_blob[%d] = {\n" % (len(data))) for current,idx in zip(data, range(len(data))): if ((idx+1) % 4 == 0): dest.write(hex(current)+",\n") else: dest.write(hex(current)+",") dest.write("};\n") dest.write("#endif /* %s */\n" % (header_guard)) sys.exit(0)