Bash程序  |  57行  |  1.85 KB

#!/bin/bash
#
# Copyright 2016 Google Inc. All Rights Reserved.
#
# This is a generic ChromeOS package/image test setup script. It is meant to
# be used for the package bisection tool, in particular when there is a booting
# issue with the image, so the image MUST be 'flashed' via USB.
#
# This script is intended to be used by binary_search_state.py, as
# part of the binary search triage on ChromeOS objects and packages. It should
# return '0' if the setup succeeds; and '1' if the setup fails (the image
# could not built or be flashed).
#

export PYTHONUNBUFFERED=1

source common/common.sh

echo "BUILDING IMAGE"
pushd ~/trunk/src/scripts
./build_image test --board=${BISECT_BOARD} --noenable_rootfs_verification --noeclean
build_status=$?
popd

if [[ ${build_status} -eq 0 ]] ; then
    echo
    echo "INSTALLING IMAGE VIA USB (requires some manual intervention)"
    echo
    echo "Insert a usb stick into the current machine"
    echo "Note: The cros flash will take time and doesn't give much output."
    echo "      Be patient. If your usb access light is flashing it's working."
    sleep 1
    read -p "Press enter to continue" notused

    cros flash --board=${BISECT_BOARD} --clobber-stateful usb:// ~/trunk/src/build/images/${BISECT_BOARD}/latest/chromiumos_test_image.bin

    echo
    echo "Flash to usb complete!"
    echo "Plug the usb into your chromebook and install the image."
    echo "Refer to the ChromiumOS Developer's Handbook for more details."
    echo "http://www.chromium.org/chromium-os/developer-guide#TOC-Boot-from-your-USB-disk"
    while true; do
      sleep 1
      read -p "Was the installation of the image successful? " choice
      case $choice in
        [Yy]*) exit 0;;
        [Nn]*) exit 1;;
        *) echo "Please answer y or n.";;
      esac
    done
else
    echo "build_image returned a non-zero status: ${build_status}"
    exit 1
fi

exit 0