Home | History | Annotate | Download | only in qemu
      1 #!/usr/bin/python
      2 #
      3 # a python script used to generate the "default-skin.h' header file
      4 # from a given skin directory
      5 #
      6 # usage:
      7 #    progname skin-directory-path > default-skin.h
      8 #
      9 import sys, os, string, re
     10 
     11 header = """\
     12 /* automatically generated, do not touch */
     13 
     14 """
     15 
     16 
     17 footer = """\
     18 
     19 static const FileEntry  _file_entries[] =
     20 {
     21 """
     22 
     23 footer2 = """\
     24     { NULL, NULL, 0 }
     25 };
     26 """
     27 
     28 
     29 entries = []
     30 
     31 def process_files( basepath, files ):
     32     for file in files:
     33         fp = open(basepath + "/" + file, "rb")
     34         data = fp.read()
     35         data_len  = len(data)
     36         data_add  = 0
     37         data_name = "_data_" + string.replace(file,".","_")
     38 
     39         entries.append( (file, data_name, len(data)) )
     40         print "static const unsigned char %s[%d] = {" % (data_name, data_len + data_add)
     41         comma = "    "
     42         do_line = 0
     43         do_comma = 0
     44         count = 0
     45         line  = "    "
     46         for b in data:
     47             d = ord(b)
     48 
     49             if do_comma:
     50                 line = line + ","
     51                 do_comma = 0
     52 
     53             if do_line:
     54                 print line
     55                 line = "    "
     56                 do_line = 0
     57 
     58             line = line + "%3d" % d
     59             do_comma = 1
     60             count += 1
     61             if count == 16:
     62                 count = 0
     63                 do_line = 1
     64 
     65         if len(line) > 0:
     66             print line
     67         print "};\n"
     68 
     69 if len(sys.argv) != 2:
     70     print "usage: progname  skindirpath > default-skin.h"
     71 else:
     72     print header
     73     skindir = sys.argv[1]
     74     process_files( skindir, os.listdir(skindir) )
     75     print footer
     76     for e in entries:
     77         print "    { \"%s\", %s, %d }," % (e[0], e[1], e[2])
     78     print footer2
     79