| Index: bin/cros_make_image_bootable | 
| diff --git a/bin/cros_make_image_bootable b/bin/cros_make_image_bootable | 
| index d5644916b85c8028d51e49b6b916106d2d9a99f3..c1a2d0e2b56926bae6a374b036f2d8dcfef8f77f 100755 | 
| --- a/bin/cros_make_image_bootable | 
| +++ b/bin/cros_make_image_bootable | 
| @@ -7,21 +7,35 @@ | 
| # Script which ensures that a given image has an up-to-date | 
| # kernel partition, rootfs integrity hashes, and legacy bootloader configs. | 
|  | 
| -# Load common constants.  This should be the first executable line. | 
| -# The path to common.sh should be relative to your script's location. | 
| -COMMON_PATH="$(dirname "$0")/../common.sh" | 
| -if [ ! -r "${COMMON_PATH}" ]; then | 
| -  echo "ERROR! Cannot find common.sh: ${COMMON_PATH}" 1>&2 | 
| -  exit 1 | 
| -fi | 
| +# --- 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 | 
| +} | 
|  | 
| -. "$(dirname "$0")/../common.sh" | 
| +find_common_sh | 
| +. "${SCRIPT_ROOT}/common.sh" || (echo "Unable to load common.sh" && exit 1) | 
| +# --- END COMMON.SH BOILERPLATE --- | 
|  | 
| -# Script must be run inside the chroot. | 
| +# Need to be inside the chroot to load chromeos-common.sh | 
| assert_inside_chroot | 
|  | 
| +# Load functions and constants for chromeos-install | 
| +. "/usr/lib/installer/chromeos-common.sh" || \ | 
| +  die "Unable to load /usr/lib/installer/chromeos-common.sh" | 
| + | 
| set -e | 
| -. "$(dirname "$0")/../chromeos-common.sh"  # for partoffset and partsize | 
|  | 
| if [ $# -lt 2 ]; then | 
| echo "Usage: ${0} /PATH/TO/IMAGE IMAGE.BIN [shflags overrides]" | 
| @@ -41,7 +55,7 @@ if [ ! -r "${BOOT_DESC_FILE}" ]; then | 
| BOOT_DESC="${@}" | 
| else | 
| BOOT_DESC="$(cat ${BOOT_DESC_FILE} | tr -s '\n' ' ')" | 
| -  info "Boot-time configuration for $(dirname ${IMAGE}): " | 
| +  info "Boot-time configuration for $(dirname "${IMAGE}"): " | 
| cat ${BOOT_DESC_FILE} | while read line; do | 
| info "  ${line}" | 
| done | 
| @@ -138,7 +152,7 @@ make_image_bootable() { | 
| fi | 
|  | 
| trap "mount_gpt_cleanup" EXIT | 
| -  ${SCRIPTS_DIR}/mount_gpt_image.sh --from "$(dirname ${image})" \ | 
| +  "${SCRIPTS_DIR}/mount_gpt_image.sh" --from "$(dirname "${image}")" \ | 
| --image "$(basename ${image})" -r "${FLAGS_rootfs_mountpoint}" \ | 
| -s "${FLAGS_statefulfs_mountpoint}" | 
|  | 
|  |