| #!/bin/bash |
| |
| # 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. |
| |
| # Downloads the latest buildbot image and prints the path to it. |
| # This script only works if you have access to buildbot images. |
| |
| # --- BEGIN COMMON.SH BOILERPLATE --- |
| # Load common CrOS utilities. Inside the chroot this file is installed in |
| # /usr/lib/crosutils. Outside the chroot we find it relative to the script's |
| # location. |
| find_common_sh() { |
| local common_paths=(/usr/lib/crosutils $(dirname "$(readlink -f "$0")")) |
| local path |
| |
| SCRIPT_ROOT= |
| for path in "${common_paths[@]}"; do |
| if [ -r "${path}/common.sh" ]; then |
| SCRIPT_ROOT=${path} |
| break |
| fi |
| done |
| } |
| |
| find_common_sh |
| . "${SCRIPT_ROOT}/common.sh" || (echo "Unable to load common.sh" && exit 1) |
| # --- END COMMON.SH BOILERPLATE --- |
| |
| get_default_board |
| |
| DEFINE_string board "$DEFAULT_BOARD" \ |
| "The name of the board to check for images." |
| DEFINE_boolean incremental "${FLAGS_FALSE}" "Download incremental build" |
| |
| # Parse command line flags. |
| FLAGS "$@" || exit 1 |
| eval set -- "${FLAGS_ARGV}" |
| |
| # Check on the board that they are trying to set up. |
| if [ -z "$FLAGS_board" ] ; then |
| die "Error: --board required." |
| fi |
| |
| IMAGES_DIR="${DEFAULT_BUILD_ROOT}/images/${FLAGS_board}" |
| |
| if [ $FLAGS_board = x86-generic ]; then |
| if [ "$FLAGS_incremental" -eq "$FLAGS_TRUE" ]; then |
| URL_PREFIX="https://sandbox.google.com/storage/chromeos-archive/x86-generic-bin" |
| else |
| URL_PREFIX="https://sandbox.google.com/storage/chromeos-archive/x86-generic-rel" |
| fi |
| else |
| die "Unrecognized board: $FLAGS_board" |
| fi |
| |
| read -p "Username [${LOGNAME}]: " GSDCURL_USERNAME |
| export GSDCURL_USERNAME |
| read -s -p "Password: " GSDCURL_PASSWORD |
| echo >&2 # ... because read -s didn't print a newline |
| export GSDCURL_PASSWORD |
| |
| LATEST_BUILD=$(bin/cros_gsdcurl.py -s $URL_PREFIX/LATEST) |
| LATEST_IMAGE_DIR="$IMAGES_DIR/$LATEST_BUILD" |
| if [ ! -e $LATEST_IMAGE_DIR/chromiumos_base_image.bin ]; then |
| mkdir -p $LATEST_IMAGE_DIR |
| bin/cros_gsdcurl.py $URL_PREFIX/$LATEST_BUILD/image.zip -o \ |
| $LATEST_IMAGE_DIR/image.zip \ |
| || die "Could not download image.zip" |
| ( cd $LATEST_IMAGE_DIR && unzip -qo image.zip ) \ |
| || die "Could not unzip image.zip" |
| fi |
| |
| echo $LATEST_IMAGE_DIR |
| exit 0 |