Chromium Code Reviews| Index: scripts/newbitmaps/make_bmp_from_components.py |
| diff --git a/scripts/newbitmaps/make_bmp_from_components.py b/scripts/newbitmaps/make_bmp_from_components.py |
| new file mode 100755 |
| index 0000000000000000000000000000000000000000..c2930d019293d1e6f5f67df21d8450a053056134 |
| --- /dev/null |
| +++ b/scripts/newbitmaps/make_bmp_from_components.py |
| @@ -0,0 +1,86 @@ |
| +#!/usr/bin/python2.6 |
| +# Copyright (c) 2011 The Chromium OS Authors. All rights reserved. |
| +# Use of this source code is governed by a BSD-style license that can be |
| +# found in the LICENSE file. |
| + |
| +# Call on a directory with components_XXX_XXX files, to create |
| +# bitmaps with the appropriate names and contents. |
| + |
| +import sys |
| +import glob |
| +import os |
| +import re |
| +import tempfile |
| + |
| + |
| +if len(sys.argv) < 2: |
| + print "usage: %s autotest/../hardware_Components/" % sys.argv[0] |
| + sys.exit(1) |
| + |
| + |
| +def MakeBmp(hwid, geom, bmp, directory): |
| + """ Create the bitmap for this file. """ |
| + tmpdir = tempfile.mkdtemp() |
| + tmpfile = os.path.join(tmpdir, "hwid.txt") |
| + tmpbmpname = os.path.join(tmpdir, "hwid.bmp") |
| + f = open(tmpfile, "w") |
| + f.write(hwid) |
| + f.close() |
| + |
| + # Call bitmap making tools. |
| + txt_to_bmp = ("~/trunk/src/platform/vboot_reference/" |
| + "scripts/newbitmaps/strings/text_to_bmp") |
| + imagedir = os.path.join( |
| + "~/trunk/src/platform/vboot_reference/scripts/newbitmaps/images", geom) |
| + yamlfile = os.path.join(imagedir, "unknown.yaml") |
| + newyamlfile = os.path.join(imagedir, "hwid.yaml") |
| + outputbmp = os.path.join(directory, bmp) |
| + |
| + os.system("%s %s > /dev/null" % (txt_to_bmp, tmpfile)) |
| + 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
|
| + yamlfile, newyamlfile)) |
| + os.system("pushd %s >/dev/null; bmpblk_utility -c %s %s; popd >/dev/null" % ( |
| + imagedir, newyamlfile, outputbmp)) |
| + os.system("rm -rf %s" % tmpdir) |
| + |
| +def ProcessDir(directory): |
| + """ Find all the components file in this dir. """ |
| + # Regex to find the values we want. |
| + re_bmp = re.compile(r'\'data_bitmap_fv\': \[\'(?P<bmp>.*)\'\],') |
| + re_hwid = re.compile(r'\'part_id_hwqual\': \[\'(?P<hwid>.*)\'\],') |
| + re_geom = re.compile(r'\'data_display_geometry\': \[\'(?P<geom>.*)\'\],') |
| + |
| + # Find the components files. |
| + files = glob.glob(os.path.join(directory, "data_*/components_*")) |
| + for file in files: |
| + # Scan for the values. |
| + f = open(file, "r") |
| + bmp = None |
| + hwid = None |
| + geom = None |
| + for line in f.readlines(): |
| + m = re_bmp.search(line) |
| + if m: |
| + bmp = m.group('bmp') |
| + |
| + m = re_hwid.search(line) |
| + if m: |
| + hwid = m.group('hwid') |
| + |
| + m = re_geom.search(line) |
| + if m: |
| + geom = m.group('geom') |
| + f.close() |
| + if not ( bmp and hwid and geom): |
| + print "Corrupt HWID configuration" |
| + sys.exit(1) |
| + print "HWID: %s, %s, %s" % (hwid, geom, bmp) |
| + MakeBmp(hwid, geom, bmp, directory) |
| + |
| +def main(): |
| + directory = os.path.abspath(sys.argv[1]) |
| + print "Generating HWID bmp based on %s" % directory |
| + ProcessDir(directory) |
| + |
| +if __name__ == '__main__': |
| + main() |