#!/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