0
0
forked from blender/blender
blender/release/datafiles/ctodata.py

53 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python3
# SPDX-FileCopyrightText: 2009 Blender Authors
#
# SPDX-License-Identifier: GPL-2.0-or-later
import sys
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")
sys.exit(1)
filename = argv[1]
try:
fpin = open(filename, "r")
except:
sys.stdout.write("Unable to open input {:s}\n".format(argv[1]))
sys.exit(1)
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
if strip_byte:
# String data gets trailing byte.
last = data_as_list.pop()
assert last == 0
data = bytes(data_as_list)
del data_as_list
dname = filename + ".ctodata"
sys.stdout.write("Making DATA file <{:s}>\n".format(dname))
try:
fpout = open(dname, "wb")
except:
sys.stdout.write("Unable to open output {:s}\n".format(dname))
sys.exit(1)
size = fpout.write(data)
sys.stdout.write("{:d}\n".format(size))