Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 #!/usr/bin/python2.6 | |
| 2 # Copyright (c) 2011 The Chromium OS Authors. All rights reserved. | |
| 3 # Use of this source code is governed by a BSD-style license that can be | |
| 4 # found in the LICENSE file. | |
| 5 | |
| 6 # Call on a directory with components_XXX_XXX files, to create | |
| 7 # bitmaps with the appropriate names and contents. | |
| 8 | |
| 9 import sys | |
| 10 import glob | |
| 11 import os | |
| 12 import re | |
| 13 import tempfile | |
| 14 | |
| 15 | |
| 16 if len(sys.argv) < 2: | |
| 17 print "usage: %s autotest/../hardware_Components/" % sys.argv[0] | |
| 18 sys.exit(1) | |
| 19 | |
| 20 | |
| 21 def MakeBmp(hwid, geom, bmp, directory): | |
| 22 """ Create the bitmap for this file. """ | |
| 23 tmpdir = tempfile.mkdtemp() | |
| 24 tmpfile = os.path.join(tmpdir, "hwid.txt") | |
| 25 tmpbmpname = os.path.join(tmpdir, "hwid.bmp") | |
| 26 f = open(tmpfile, "w") | |
| 27 f.write(hwid) | |
| 28 f.close() | |
| 29 | |
| 30 # Call bitmap making tools. | |
| 31 txt_to_bmp = ("~/trunk/src/platform/vboot_reference/" | |
| 32 "scripts/newbitmaps/strings/text_to_bmp") | |
| 33 imagedir = os.path.join( | |
| 34 "~/trunk/src/platform/vboot_reference/scripts/newbitmaps/images", geom) | |
| 35 yamlfile = os.path.join(imagedir, "unknown.yaml") | |
| 36 newyamlfile = os.path.join(imagedir, "hwid.yaml") | |
| 37 outputbmp = os.path.join(directory, bmp) | |
| 38 | |
| 39 os.system("%s %s > /dev/null" % (txt_to_bmp, tmpfile)) | |
| 40 os.system("cat %s | sed 's/hwid_unknown.bmp/hwid.bmp/' > %s" % ( | |
|
Bill Richardson
2011/03/02 18:49:38
Line 40 & 41 needs to be:
os.system("cat %s | sed
| |
| 41 yamlfile, newyamlfile)) | |
| 42 os.system("pushd %s >/dev/null; bmpblk_utility -c %s %s; popd >/dev/null" % ( | |
| 43 imagedir, newyamlfile, outputbmp)) | |
| 44 os.system("rm -rf %s" % tmpdir) | |
| 45 | |
| 46 def ProcessDir(directory): | |
| 47 """ Find all the components file in this dir. """ | |
| 48 # Regex to find the values we want. | |
| 49 re_bmp = re.compile(r'\'data_bitmap_fv\': \[\'(?P<bmp>.*)\'\],') | |
| 50 re_hwid = re.compile(r'\'part_id_hwqual\': \[\'(?P<hwid>.*)\'\],') | |
| 51 re_geom = re.compile(r'\'data_display_geometry\': \[\'(?P<geom>.*)\'\],') | |
| 52 | |
| 53 # Find the components files. | |
| 54 files = glob.glob(os.path.join(directory, "data_*/components_*")) | |
| 55 for file in files: | |
| 56 # Scan for the values. | |
| 57 f = open(file, "r") | |
| 58 bmp = None | |
| 59 hwid = None | |
| 60 geom = None | |
| 61 for line in f.readlines(): | |
| 62 m = re_bmp.search(line) | |
| 63 if m: | |
| 64 bmp = m.group('bmp') | |
| 65 | |
| 66 m = re_hwid.search(line) | |
| 67 if m: | |
| 68 hwid = m.group('hwid') | |
| 69 | |
| 70 m = re_geom.search(line) | |
| 71 if m: | |
| 72 geom = m.group('geom') | |
| 73 f.close() | |
| 74 if not ( bmp and hwid and geom): | |
| 75 print "Corrupt HWID configuration" | |
| 76 sys.exit(1) | |
| 77 print "HWID: %s, %s, %s" % (hwid, geom, bmp) | |
| 78 MakeBmp(hwid, geom, bmp, directory) | |
| 79 | |
| 80 def main(): | |
| 81 directory = os.path.abspath(sys.argv[1]) | |
| 82 print "Generating HWID bmp based on %s" % directory | |
| 83 ProcessDir(directory) | |
| 84 | |
| 85 if __name__ == '__main__': | |
| 86 main() | |
| OLD | NEW |