#!/usr/bin/python
#
# a python script used to generate the "default-skin.h' header file
# from a given skin directory
#
# usage:
# progname skin-directory-path > default-skin.h
#
import sys, os, string, re
header = """\
/* automatically generated, do not touch */
"""
footer = """\
static const FileEntry _file_entries[] =
{
"""
footer2 = """\
{ NULL, NULL, 0 }
};
"""
entries = []
def process_files( basepath, files ):
for file in files:
fp = open(basepath + "/" + file, "rb")
data = fp.read()
data_len = len(data)
data_add = 0
data_name = "_data_" + string.replace(file,".","_")
entries.append( (file, data_name, len(data)) )
print "static const unsigned char %s[%d] = {" % (data_name, data_len + data_add)
comma = " "
do_line = 0
do_comma = 0
count = 0
line = " "
for b in data:
d = ord(b)
if do_comma:
line = line + ","
do_comma = 0
if do_line:
print line
line = " "
do_line = 0
line = line + "%3d" % d
do_comma = 1
count += 1
if count == 16:
count = 0
do_line = 1
if len(line) > 0:
print line
print "};\n"
if len(sys.argv) != 2:
print "usage: progname skindirpath > default-skin.h"
else:
print header
skindir = sys.argv[1]
process_files( skindir, os.listdir(skindir) )
print footer
for e in entries:
print " { \"%s\", %s, %d }," % (e[0], e[1], e[2])
print footer2