#!/usr/bin/python
## bf2ca.py binary file to C array script
## author: Frank Rehberger
## License: Apache License V2
## Usage:
## chmod +x bf2ca.py
## ./bf2ca.py file1.bin file2.bin file3.bin
import sys
import os
from array import array
def getvarname(datafile):
return datafile[:datafile.rfind(".")]
def printAsEmbeddedArray(datafile):
if not os.path.exists(datafile):
sys.stderr.write("ERROR: Datafile %r was not found!" % (datafile,))
return 1
with open(datafile, "rb") as f:
ar = ["(char)0x{:02x}".format(ord(c)) for c in f.read()]
varname = getvarname(datafile)
print "static char", varname, "[] = {", ", ".join(ar), "};"
def main(argv):
if len(argv) < 2:
sys.stderr.write("Usage: %s
return 1
filelist = argv[1:]
for datafile in filelist:
printAsEmbeddedArray(datafile)
varnamelist = ["{:s}".format(getvarname(f)) for f in filelist] + ["NULL"]
print "static char* BUF[] = {", ", ".join(varnamelist), "};"
varnamelist = ["sizeof({:s})".format(getvarname(f)) for f in filelist] + ["0"]
print "static size_t BUFLEN[] = {", ", ".join(varnamelist), "};"
if __name__ == "__main__":
sys.exit(main(sys.argv))
No comments:
Post a Comment