Index: mod_image_for_test.sh |
diff --git a/mod_image_for_test.sh b/mod_image_for_test.sh |
index 97aa5e0cc7c3dddd686a04d84b1b4d63cb853490..f9fec77c33112b8bf72d163466144d137a40b0d6 100755 |
--- a/mod_image_for_test.sh |
+++ b/mod_image_for_test.sh |
@@ -6,16 +6,34 @@ |
# Script to modify a keyfob-based chromeos system image for testability. |
-# 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 --- |
-# We need to be in the chroot to emerge test packages. |
+# 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" |
+ |
get_default_board |
DEFINE_string board "$DEFAULT_BOARD" "Board for which the image was built" b |
@@ -92,8 +110,7 @@ cleanup_mounts() { |
# root/stateful image file system open. We do a best effort attempt to kill |
# them. |
PIDS=`sudo lsof -t "$1" | sort | uniq` |
- for pid in ${PIDS} |
- do |
+ for pid in ${PIDS}; do |
local cmdline=`cat /proc/$pid/cmdline` |
echo "Killing process that has open file on the mounted directory: $cmdline" |
sudo kill $pid || /bin/true |
@@ -169,11 +186,11 @@ fi |
set -e |
-IMAGE_DIR="$(dirname "$FLAGS_image")" |
+IMAGE_DIR=$(dirname "$FLAGS_image") |
IMAGE_NAME="$(basename "$FLAGS_image")" |
ROOT_FS_DIR="$IMAGE_DIR/rootfs" |
STATEFUL_DIR="$IMAGE_DIR/stateful_partition" |
-SCRIPTS_DIR=$(dirname "$0") |
+SCRIPTS_DIR=${SCRIPT_ROOT} |
DEV_USER="chronos" |
trap cleanup EXIT |
@@ -229,7 +246,7 @@ fi |
cleanup |
# Now make it bootable with the flags from build_image |
-${SCRIPTS_DIR}/bin/cros_make_image_bootable $(dirname "${FLAGS_image}") \ |
+"${SCRIPTS_DIR}/bin/cros_make_image_bootable" "$(dirname "${FLAGS_image}")" \ |
$(basename "${FLAGS_image}") |
print_time_elapsed |