#!/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. # Load common constants. This should be the first executable line. # The path to common.sh should be relative to your script's location. . "$(dirname "$0")/common.sh" 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