Index: mod_image_for_recovery.sh |
diff --git a/mod_image_for_recovery.sh b/mod_image_for_recovery.sh |
index 2d6e03151bdf6ce821aa684e8553a2b513ae38f1..4119e59afe7d26157dddf522af6820bccf710298 100755 |
--- a/mod_image_for_recovery.sh |
+++ b/mod_image_for_recovery.sh |
@@ -9,19 +9,37 @@ |
# kernel. Alternatively, a signed recovery kernel can be used to |
# create a Chromium OS recovery image. |
-# 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 |
+} |
-# Load functions and constants for chromeos-install |
-. "$(dirname "$0")/chromeos-common.sh" |
+find_common_sh |
+. "${SCRIPT_ROOT}/common.sh" || (echo "Unable to load common.sh" && exit 1) |
+# --- END COMMON.SH BOILERPLATE --- |
-# For update_partition_table |
-. "$(dirname "$0")/resize_stateful_partition.sh" |
+# 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" |
-# We need to be in the chroot to emerge test packages. |
-assert_inside_chroot |
+# For update_partition_table |
+. "${SCRIPT_ROOT}/resize_stateful_partition.sh" || \ |
+ die "Unable to load ${SCRIPT_ROOT}/resize_stateful_partition.sh" |
get_default_board |
@@ -371,7 +389,7 @@ RECOVERY_KERNEL_IMAGE=\ |
"${FLAGS_kernel_outfile:-${IMAGE_DIR}/recovery_vmlinuz.image}" |
RECOVERY_KERNEL_VBLOCK="${RECOVERY_KERNEL_IMAGE}.vblock" |
STATEFUL_DIR="$IMAGE_DIR/stateful_partition" |
-SCRIPTS_DIR=$(dirname "$0") |
+SCRIPTS_DIR=${SCRIPT_ROOT} |
# Mounts gpt image and sets up var, /usr/local and symlinks. |
# If there's a dev payload, mount stateful |