summaryrefslogtreecommitdiffstats
path: root/docs/release/scripts/build/file2str.py
diff options
context:
space:
mode:
Diffstat (limited to 'docs/release/scripts/build/file2str.py')
-rw-r--r--docs/release/scripts/build/file2str.py63
1 files changed, 63 insertions, 0 deletions
diff --git a/docs/release/scripts/build/file2str.py b/docs/release/scripts/build/file2str.py
new file mode 100644
index 00000000000..7417f338328
--- /dev/null
+++ b/docs/release/scripts/build/file2str.py
@@ -0,0 +1,63 @@
+#!/usr/bin/python
+##
+## license:BSD-3-Clause
+## copyright-holders:Aaron Giles, Andrew Gardner
+
+from __future__ import with_statement
+
+import sys
+import os
+
+if len(sys.argv) < 4:
+ print('Usage:')
+ print(' file2str <source.lay> <output.h> <varname> [<type>]')
+ print('')
+ print('The default <type> is char, with an assumed NULL terminator')
+ sys.exit(0)
+
+terminate = 1
+srcfile = sys.argv[1]
+dstfile = sys.argv[2]
+varname = sys.argv[3]
+
+if len(sys.argv) >= 5:
+ type = sys.argv[4]
+ terminate = 0
+else:
+ type = 'char'
+
+try:
+ myfile = open(srcfile, 'rb')
+except IOError:
+ sys.stderr.write("Unable to open source file '%s'\n" % srcfile)
+ sys.exit(-1)
+
+byteCount = os.path.getsize(srcfile)
+try:
+ dst = open(dstfile,'w')
+ dst.write('extern const %s %s[];\n' % ( type, varname ))
+ dst.write('const %s %s[] =\n{\n\t' % ( type, varname))
+ offs = 0
+ with open(srcfile, "rb") as src:
+ while True:
+ chunk = src.read(16)
+ if chunk:
+ for b in chunk:
+ # For Python 2.x compatibility.
+ if isinstance(b, str):
+ b = ord(b)
+ dst.write('0x%02x' % b)
+ offs += 1
+ if offs != byteCount:
+ dst.write(',')
+ else:
+ break
+ if offs != byteCount:
+ dst.write('\n\t')
+ if terminate == 1:
+ dst.write(',0x00')
+ dst.write('\n};\n')
+ dst.close()
+except IOError:
+ sys.stderr.write("Unable to open output file '%s'\n" % dstfile)
+ sys.exit(-1)