Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(380)

Unified Diff: image_to_usb.sh

Issue 5271010: Factored out the code to copy an image and modify it for test (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/crosutils.git@master
Patch Set: Final upload to check before push Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « common.sh ('k') | image_to_vm.sh » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: image_to_usb.sh
diff --git a/image_to_usb.sh b/image_to_usb.sh
index db5bd9878720b0ea529e52f007405ceb0828d41b..e957e2f3724a03d3995640ba248fe8f981474ca4 100755
--- a/image_to_usb.sh
+++ b/image_to_usb.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright (c) 2009 The Chromium OS Authors. All rights reserved.
+# 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.
@@ -40,7 +40,7 @@ get_default_board
# Flags
DEFINE_string board "${DEFAULT_BOARD}" "Board for which the image was built"
DEFINE_string from "" \
- "Directory containing chromiumos_image.bin"
+ "Directory containing ${CHROMEOS_IMAGE_NAME}"
DEFINE_string to "/dev/sdX" "${DEFAULT_TO_HELP}"
DEFINE_boolean yes ${FLAGS_FALSE} "Answer yes to all prompts" "y"
DEFINE_boolean force_copy ${FLAGS_FALSE} "Always rebuild test image"
@@ -53,8 +53,8 @@ DEFINE_boolean factory ${FLAGS_FALSE} \
DEFINE_boolean copy_kernel ${FLAGS_FALSE} \
"Copy the kernel to the fourth partition."
DEFINE_boolean test_image "${FLAGS_FALSE}" \
- "Copies normal image to chromiumos_test_image.bin, modifies it for test."
-DEFINE_string image_name "chromiumos_image.bin" \
+ "Copies normal image to ${CHROMEOS_TEST_IMAGE_NAME}, modifies it for test."
+DEFINE_string image_name "${CHROMEOS_IMAGE_NAME}" \
"Base name of the image" i
DEFINE_string build_root "/build" \
"The root location for board sysroots."
@@ -103,6 +103,8 @@ fi
# We have a board name but no image set. Use image at default location
if [ -z "${FLAGS_from}" ]; then
IMAGES_DIR="${DEFAULT_BUILD_ROOT}/images/${FLAGS_board}"
+
+ # Get latest image directory
FLAGS_from="${IMAGES_DIR}/$(ls -t ${IMAGES_DIR} 2>&-| head -1)"
fi
@@ -153,9 +155,6 @@ if [ -b "${FLAGS_to}" ]; then
fi
fi
-# Use this image as the source image to copy
-SRC_IMAGE="${FLAGS_from}/${FLAGS_image_name}"
-
STATEFUL_DIR="${FLAGS_from}/stateful_partition"
mkdir -p "${STATEFUL_DIR}"
@@ -169,41 +168,15 @@ function do_cleanup {
fi
}
-
-# If we're asked to modify the image for test, then let's make a copy and
-# modify that instead.
if [ ${FLAGS_test_image} -eq ${FLAGS_TRUE} ] ; then
- if [ ! -f "${FLAGS_from}/chromiumos_test_image.bin" ] || \
- [ ${FLAGS_force_copy} -eq ${FLAGS_TRUE} ] ; then
- # Copy it.
- echo "Creating test image from original..."
- cp -f "${SRC_IMAGE}" "${FLAGS_from}/chromiumos_test_image.bin"
-
- # Check for manufacturing image.
- if [ ${FLAGS_factory} -eq ${FLAGS_TRUE} ] ; then
- EXTRA_ARGS="--factory"
- fi
-
- # Check for instqall shim.
- if [ ${FLAGS_factory_install} -eq ${FLAGS_TRUE} ] ; then
- EXTRA_ARGS="--factory_install"
- fi
-
- # Modify it. Pass --yes so that mod_image_for_test.sh won't ask us if we
- # really want to modify the image; the user gave their assent already with
- # --test-image and the original image is going to be preserved.
- "${SCRIPTS_DIR}/mod_image_for_test.sh" --image \
- "${FLAGS_from}/chromiumos_test_image.bin" --board=${FLAGS_board} \
- ${EXTRA_ARGS} --yes
- echo "Done with mod_image_for_test."
- else
- echo "Using cached test image."
- fi
- SRC_IMAGE="${FLAGS_from}/chromiumos_test_image.bin"
- echo "Source test image is: ${SRC_IMAGE}"
+ # Make a test image - this returns the test filename in CHROMEOS_RETURN_VAL
+ prepare_test_image "${FLAGS_from}" "${FLAGS_image_name}"
+ SRC_IMAGE="${CHROMEOS_RETURN_VAL}"
+else
+ # Use the standard image
+ SRC_IMAGE="${FLAGS_from}/${FLAGS_image_name}"
fi
-
# Let's do it.
if [ -b "${FLAGS_to}" ]; then
# Output to a block device (i.e., a real USB key), so need sudo dd
@@ -253,15 +226,9 @@ if [ -b "${FLAGS_to}" ]; then
sleep 3
if [ ${FLAGS_install} -ne ${FLAGS_TRUE} ]; then
- echo "Copying ${SRC_IMAGE} to ${FLAGS_to}..."
- if type pv >/dev/null 2>&1; then
- # pv displays file size in k=1024 while dd uses k=1000.
- # To prevent confusion, we suppress the summary report from dd.
- sudo pv -ptreb -B 4m "${SRC_IMAGE}" |
- sudo dd of="${FLAGS_to}" bs=4M oflag=sync status=noxfer
- else
- sudo dd if="${SRC_IMAGE}" of="${FLAGS_to}" bs=4M oflag=sync
- fi
+ echo "Copying with dd ${SRC_IMAGE} to ${FLAGS_to}..."
+ sudo ${COMMON_PV_CAT} "${SRC_IMAGE}" |
+ sudo dd of="${FLAGS_to}" bs=4M oflag=sync status=noxfer
sync
else
if [ ${INSIDE_CHROOT} -ne 1 ]; then
@@ -282,7 +249,7 @@ if [ -b "${FLAGS_to}" ]; then
else
# Output to a file, so just make a copy.
echo "Copying ${SRC_IMAGE} to ${FLAGS_to}..."
- cp -f "${SRC_IMAGE}" "${FLAGS_to}"
+ ${COMMON_PV_CAT} "${SRC_IMAGE}" >"${FLAGS_to}"
echo "Done. To copy to a USB drive, do something like:"
echo " sudo dd if=${FLAGS_to} of=/dev/sdX bs=4M oflag=sync"
« no previous file with comments | « common.sh ('k') | image_to_vm.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698