2016-07-25 19:13:39 +00:00
|
|
|
#!/usr/bin/env python3
|
2023-08-15 14:20:26 +00:00
|
|
|
# SPDX-FileCopyrightText: 2009 Blender Authors
|
2023-06-15 03:09:04 +00:00
|
|
|
#
|
2022-02-10 22:07:11 +00:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
2010-12-14 12:09:30 +00:00
|
|
|
|
|
|
|
import sys
|
|
|
|
|
2019-02-14 21:39:15 +00:00
|
|
|
argv = sys.argv[:]
|
|
|
|
|
|
|
|
strip_byte = False
|
|
|
|
if "--strip-byte" in argv:
|
|
|
|
argv.remove("--strip-byte")
|
|
|
|
strip_byte = True
|
|
|
|
|
|
|
|
if len(argv) < 2:
|
|
|
|
sys.stdout.write("Usage: ctodata <c_file> [--strip-byte]\n")
|
2010-12-14 12:09:30 +00:00
|
|
|
sys.exit(1)
|
|
|
|
|
2019-02-14 21:39:15 +00:00
|
|
|
filename = argv[1]
|
2010-12-14 12:09:30 +00:00
|
|
|
|
|
|
|
try:
|
|
|
|
fpin = open(filename, "r")
|
|
|
|
except:
|
2019-02-14 21:39:15 +00:00
|
|
|
sys.stdout.write("Unable to open input %s\n" % argv[1])
|
2010-12-14 12:09:30 +00:00
|
|
|
sys.exit(1)
|
|
|
|
|
2024-01-24 22:59:29 +00:00
|
|
|
data_as_str = fpin.read().rsplit("{")[-1].split("}")[0]
|
|
|
|
data_as_str = data_as_str.replace(",", " ")
|
|
|
|
data_as_list = [int(v) for v in data_as_str.split()]
|
|
|
|
del data_as_str
|
2019-02-14 21:39:15 +00:00
|
|
|
|
|
|
|
if strip_byte:
|
|
|
|
# String data gets trailing byte.
|
2024-01-24 22:59:29 +00:00
|
|
|
last = data_as_list.pop()
|
2022-09-14 06:18:59 +00:00
|
|
|
assert last == 0
|
2019-02-14 21:39:15 +00:00
|
|
|
|
2024-01-24 22:59:29 +00:00
|
|
|
data = bytes(data_as_list)
|
|
|
|
del data_as_list
|
2010-12-14 12:09:30 +00:00
|
|
|
|
|
|
|
dname = filename + ".ctodata"
|
|
|
|
|
2012-04-13 07:49:59 +00:00
|
|
|
sys.stdout.write("Making DATA file <%s>\n" % dname)
|
|
|
|
|
2010-12-14 12:09:30 +00:00
|
|
|
try:
|
|
|
|
fpout = open(dname, "wb")
|
|
|
|
except:
|
|
|
|
sys.stdout.write("Unable to open output %s\n" % dname)
|
|
|
|
sys.exit(1)
|
|
|
|
|
2012-04-13 07:49:59 +00:00
|
|
|
size = fpout.write(data)
|
|
|
|
|
|
|
|
sys.stdout.write("%d\n" % size)
|