| Index: archive_build.sh | 
| diff --git a/archive_build.sh b/archive_build.sh | 
| index 233540a627f13055680e91392fd9991c1d29e111..ff2be62ce7feaa69c322ad984e3dfc09b53a5a14 100755 | 
| --- a/archive_build.sh | 
| +++ b/archive_build.sh | 
| @@ -6,9 +6,26 @@ | 
|  | 
| # Script to archive build results.  Used by the buildbots. | 
|  | 
| -# 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" | 
| +# --- 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 --- | 
|  | 
| # Script must be run outside the chroot | 
| assert_outside_chroot | 
| @@ -43,7 +60,8 @@ DEFINE_string acl "private" \ | 
| DEFINE_string gsutil_archive "" \ | 
| "Optional datastore archive location" | 
| DEFINE_integer keep_max 0 "Maximum builds to keep in archive (0=all)" | 
| -DEFINE_boolean official_build $FLAGS_FALSE "Set CHROMEOS_OFFICIAL=1 for release builds." | 
| +DEFINE_boolean official_build $FLAGS_FALSE \ | 
| +    "Set CHROMEOS_OFFICIAL=1 for release builds." | 
| DEFINE_boolean test_mod $FLAGS_TRUE "Modify image for testing purposes" | 
| DEFINE_boolean prebuilt_upload $FLAGS_FALSE "Upload prebuilt binary packages." | 
| DEFINE_string to "$DEFAULT_TO" "Directory of build archive" | 
| @@ -57,8 +75,7 @@ eval set -- "${FLAGS_ARGV}" | 
| DEFAULT_USED= | 
|  | 
| # Reset "default" FLAGS_from based on passed-in board if not set on cmd-line | 
| -if [ "$FLAGS_from" = "$DEFAULT_FROM" ] | 
| -then | 
| +if [ "$FLAGS_from" = "$DEFAULT_FROM" ]; then | 
| # Keep the directory name of the current image set (*.bin). | 
| IMG_DIR="$(readlink ${IMAGES_DIR}/${FLAGS_board}/latest)" | 
| FLAGS_from="${IMAGES_DIR}/${FLAGS_board}/${IMG_DIR}" | 
| @@ -68,8 +85,7 @@ fi | 
| # Die on any errors. | 
| set -e | 
|  | 
| -if [ -z "$DEFAULT_USED" ] | 
| -then | 
| +if [ -z "$DEFAULT_USED" ]; then | 
| if [ $FLAGS_test_mod -eq $FLAGS_TRUE ] || \ | 
| [ $FLAGS_factory_install_mod -eq $FLAGS_TRUE ] || \ | 
| [ $FLAGS_factory_test_mod -eq $FLAGS_TRUE ] | 
| @@ -81,14 +97,12 @@ then | 
| fi | 
| fi | 
|  | 
| -if [ ! -d "$FLAGS_from" ] | 
| -then | 
| +if [ ! -d "$FLAGS_from" ]; then | 
| echo "$FLAGS_from does not exist.  Exiting..." | 
| exit 1 | 
| fi | 
|  | 
| -if [ $FLAGS_official_build -eq $FLAGS_TRUE ] | 
| -then | 
| +if [ $FLAGS_official_build -eq $FLAGS_TRUE ]; then | 
| CHROMEOS_OFFICIAL=1 | 
| fi | 
|  | 
| @@ -103,8 +117,7 @@ REVISION=${REVISION:0:8} | 
| # Use the version number plus revision as the last change.  (Need both, since | 
| # trunk builds multiple times with the same version string.) | 
| LAST_CHANGE="${CHROMEOS_VERSION_STRING}-r${REVISION}" | 
| -if [ -n "$FLAGS_build_number" ] | 
| -then | 
| +if [ -n "$FLAGS_build_number" ]; then | 
| LAST_CHANGE="$LAST_CHANGE-b${FLAGS_build_number}" | 
| fi | 
|  | 
| @@ -141,8 +154,7 @@ function do_chroot_mod() { | 
| } | 
|  | 
| # Modify image for test if flag set. | 
| -if [ $FLAGS_test_mod -eq $FLAGS_TRUE ] | 
| -then | 
| +if [ $FLAGS_test_mod -eq $FLAGS_TRUE ]; then | 
| echo "Modifying image for test" | 
| do_chroot_mod "${FLAGS_from}/chromiumos_test_image.bin" "" | 
|  | 
| @@ -152,16 +164,14 @@ then | 
| popd | 
| fi | 
|  | 
| -if [ $FLAGS_factory_test_mod -eq $FLAGS_TRUE ] | 
| -then | 
| +if [ $FLAGS_factory_test_mod -eq $FLAGS_TRUE ]; then | 
| echo "Modifying image for factory test" | 
| do_chroot_mod "${FLAGS_from}/chromiumos_factory_image.bin" \ | 
| "--factory" | 
| fi | 
|  | 
| # Modify for recovery | 
| -if [ $FLAGS_official_build -eq $FLAGS_TRUE ] | 
| -then | 
| +if [ $FLAGS_official_build -eq $FLAGS_TRUE ]; then | 
| BUILDVER="$(readlink ${IMAGES_DIR}/${FLAGS_board}/latest)" | 
| CHROOT_IMAGE_DIR=/home/$USER/trunk/src/build/images/$FLAGS_board/$BUILDVER | 
| ./enter_chroot.sh -- ./mod_image_for_recovery.sh --board $FLAGS_board \ | 
| @@ -175,8 +185,7 @@ fi | 
|  | 
| # Build differently sized shims. Currently only factory install shim is | 
| # supported, TODO(tgao): Add developer shim. | 
| -if [ $FLAGS_factory_install_mod -eq $FLAGS_TRUE ] | 
| -then | 
| +if [ $FLAGS_factory_install_mod -eq $FLAGS_TRUE ]; then | 
| echo "Building factory install shim." | 
| # HACK: The build system can't currently handle more than one image size | 
| # at a time. Therefor eit's necessary to do another round of build after | 
| @@ -205,8 +214,7 @@ MANIFEST=`ls | grep -v factory` | 
| zip -r "${ZIPFILE}" ${MANIFEST} | 
|  | 
| if [ $FLAGS_factory_test_mod -eq $FLAGS_TRUE ] || \ | 
| -   [ $FLAGS_factory_install_mod -eq $FLAGS_TRUE ] | 
| -then | 
| +   [ $FLAGS_factory_install_mod -eq $FLAGS_TRUE ]; then | 
| # We need to have directory structure for factory package, as | 
| # signing and packaging utilities need unpack_partitions.sh. | 
| echo "Compressing factory software" | 
| @@ -268,8 +276,7 @@ then | 
| fi | 
|  | 
|  | 
| -if [ $FLAGS_prebuilt_upload -eq $FLAGS_TRUE ] | 
| -then | 
| +if [ $FLAGS_prebuilt_upload -eq $FLAGS_TRUE ]; then | 
| # Construct prebuilt upload command. | 
| # This will upload prebuilt packages to Google Storage. | 
| prebuilt_cmd="${SCRIPTS_DIR}/prebuilt.py" | 
| @@ -287,8 +294,7 @@ fi | 
|  | 
| gsutil_archive "${ZIPFILE}" "${LAST_CHANGE}/${FLAGS_zipname}" | 
|  | 
| -if [ $FLAGS_archive_debug -eq $FLAGS_TRUE ] | 
| -then | 
| +if [ $FLAGS_archive_debug -eq $FLAGS_TRUE ]; then | 
| echo "Generating Breakpad symbols" | 
| ! ${SCRIPTS_DIR}/cros_generate_breakpad_symbols --board=${FLAGS_board} | 
| echo "Creating debug archive" | 
| @@ -302,16 +308,14 @@ then | 
| fi | 
|  | 
| if [ $FLAGS_factory_test_mod -eq $FLAGS_TRUE ] || \ | 
| -   [ $FLAGS_factory_install_mod -eq $FLAGS_TRUE ] | 
| -then | 
| +   [ $FLAGS_factory_install_mod -eq $FLAGS_TRUE ]; then | 
| gsutil_archive "${FACTORY_ZIPFILE}" \ | 
| "${LAST_CHANGE}/factory_${FLAGS_zipname}" | 
| fi | 
| gsutil_archive "${FLAGS_to}/LATEST" "LATEST" | 
|  | 
| # Purge old builds if necessary | 
| -if [ $FLAGS_keep_max -gt 0 ] | 
| -then | 
| +if [ $FLAGS_keep_max -gt 0 ]; then | 
| echo "Deleting old builds (all but the newest ${FLAGS_keep_max})..." | 
| cd "$FLAGS_to" | 
| # +2 because line numbers start at 1 and need to skip LATEST file | 
|  |