Add scripts/file_to_c.py
Adds scripts/file_to_c.py which declares an uint8_t array with the
hexadecimal content of a file.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
diff --git a/scripts/file_to_c.py b/scripts/file_to_c.py
new file mode 100755
index 0000000..83a9832
--- /dev/null
+++ b/scripts/file_to_c.py
@@ -0,0 +1,48 @@
+#!/usr/bin/env python
+# SPDX-License-Identifier: BSD-2-Clause
+#
+# Copyright (c) 2018, Linaro Limited
+#
+
+def get_args():
+ import argparse
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--name', required=True,
+ help='Name of variable in C file')
+ parser.add_argument('--out', required=True, help='Name of C file')
+ parser.add_argument('--inf', required=True, help='Name of in file')
+
+ return parser.parse_args()
+
+def main():
+ import array
+
+ args = get_args()
+
+ inf = open(args.inf, 'r')
+ f = open(args.out, 'w')
+
+ f.write("/* automatically generated */\n")
+ f.write("#include <stdint.h>\n")
+ f.write("#include <stddef.h>\n\n")
+
+ f.write("const uint8_t " + args.name + "[] = {\n")
+ i = 0
+ for x in array.array("B", inf.read()):
+ f.write("0x" + '{0:02x}'.format(x) + ",")
+ i = i + 1
+ if i % 8 == 0:
+ f.write("\n")
+ else:
+ f.write(" ")
+
+ f.write("};\n")
+ f.write("const size_t " + args.name + "_size = sizeof(" +
+ args.name + ");\n")
+
+ f.close()
+ inf.close()
+
+if __name__ == "__main__":
+ main()