Index: cros_generate_update_payload |
diff --git a/cros_generate_update_payload b/cros_generate_update_payload |
index 384e27714ff0bb3921c6b8756913bc61279e0c1f..b55f438526109e2db548938d8d5b588a5ede0ec9 100755 |
--- a/cros_generate_update_payload |
+++ b/cros_generate_update_payload |
@@ -7,12 +7,33 @@ |
# Script to generate a Chromium OS update for use by the update engine. |
# If a source .bin is specified, the update is assumed to be a delta update. |
-# 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 --- |
+ |
+# Need to be inside the chroot to load chromeos-common.sh |
+assert_inside_chroot |
# Load functions and constants for chromeos-install |
-. "$(dirname "$0")/chromeos-common.sh" |
+. "/usr/lib/installer/chromeos-common.sh" || \ |
+ die "Unable to load /usr/lib/installer/chromeos-common.sh" |
SRC_MNT="" |
DST_MNT="" |
@@ -233,7 +254,7 @@ else |
fi |
DST_ROOT=$(extract_partition_to_temp_file "$FLAGS_image" 3) |
- GENERATOR="$(dirname "$0")/mk_memento_images.sh" |
+ GENERATOR="${SCRIPTS_DIR}/mk_memento_images.sh" |
CROS_GENERATE_UPDATE_PAYLOAD_CALLED=1 "$GENERATOR" "$DST_KERNEL" "$DST_ROOT" |
mv "$(dirname "$DST_KERNEL")/update.gz" "$FLAGS_output" |