#!/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