Index: scripts/bitmaps/process_all_targets.sh |
diff --git a/scripts/bitmaps/process_all_targets.sh b/scripts/bitmaps/process_all_targets.sh |
new file mode 100755 |
index 0000000000000000000000000000000000000000..851a524ffc931149c482ee560f3c45884bcf03c1 |
--- /dev/null |
+++ b/scripts/bitmaps/process_all_targets.sh |
@@ -0,0 +1,68 @@ |
+#!/bin/bash -e |
+# Copyright (c) 2010 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. |
+# |
+# This script searches the directory tree passed in as the parameter for |
+# bmp_*.fv files, figures out the FWID strings from files' names, verifies the |
+# FWIDs' integrity (by recalculating the CRC included in the FWID string) and |
+# then rebuilds the bitmaps with the appropriate text and target specific |
+# geometry. |
+# |
+ |
+ |
+# Given a string "<prefix>_<el1>_<el2>_.._<eln>_<suffix>" print string |
+# '<el1> <el2> .. <eln>', i.e. <prefix>_ and _<suffix> dropped and underscores |
+# replaced with spaces. |
+get_elements() { |
+ echo $1 | awk 'BEGIN {FS="_"}; { |
+ x = 2; |
+ do { |
+ printf "%s ", $x; |
+ x += 1 |
+ } while (x < (NF - 1)) |
+ printf "%s", $(NF-1); |
+ }' |
+} |
+ |
+# Concatenate input parameters into a space separated string, calculate the |
+# string's CRC32 and print the last four hex digits of the crc. |
+signer() { |
+ python -c "import sys,zlib; |
+me=' '.join(sys.argv[1:]); |
+print ('%04u'%(zlib.crc32(me)&0xffffffffL))[-4:]" $1 |
+} |
+ |
+ |
+if [ "$#" != "1" -o ! -d "$1" ]; then |
+ echo "One parameter is required, the path to the chromeos release tree" >&2 |
+ exit 1 |
+fi |
+ |
+tree=$(readlink -f $1) |
+cd $(dirname "$0") |
+for f in $(find "${tree}" -type f -name 'bmp_*_[0-9]*.fv'); do |
+ filename=$(basename "$f") |
+ elements="$(get_elements $filename)" |
+ signature=$(signer "${elements}") |
+ |
+ # Rebuild file name to verify CRC. |
+ comp_name=bmp_${elements// /_}_${signature}.fv |
+ if [ "${filename}" != "${comp_name}" ]; then |
+ echo "skipping ${filename} (crc mismatch with ${comp_name})" |
+ continue |
+ fi |
+ echo "Processing ${filename}" |
+ case "${elements}" in |
+ (*ACER*) geometry='1366x768' |
+ ;; |
+ (*MARIO*) geometry='1280x800' |
+ ;; |
+ (*) echo "skipping ${filename}, unknown target geometry" |
+ echo |
+ continue |
+ ;; |
+ esac |
+ ./make_bmp_images.sh "${elements} ${signature}" "${geometry}" |
+ echo |
+done |