Index: src/scripts/build_image |
diff --git a/src/scripts/build_image b/src/scripts/build_image |
index e6fcdd364f01adc011d49b6efdf0a6d7648e3ac1..9f08f73fd10082b8a2c7796bca3ee73f45780ee3 100755 |
--- a/src/scripts/build_image |
+++ b/src/scripts/build_image |
@@ -115,23 +115,17 @@ fi |
mkdir -p "$OUTPUT_DIR" |
cleanup_rootfs_loop() { |
- sudo umount "$LOOP_DEV" |
- sleep 1 # in case $LOOP_DEV is in use. |
- sudo losetup -d "$LOOP_DEV" |
+ sudo umount -d "$ROOT_FS_DIR" |
} |
cleanup_stateful_fs_loop() { |
sudo umount "${ROOT_FS_DIR}/usr/local" |
sudo umount "${ROOT_FS_DIR}/var" |
- sudo umount "${STATEFUL_DIR}" |
- sleep 1 # follows from cleanup_root_fs_loop. |
- sudo losetup -d "$STATEFUL_LOOP_DEV" |
+ sudo umount -d "${STATEFUL_DIR}" |
} |
cleanup_esp_loop() { |
- sudo umount "$ESP_DIR" |
- sleep 1 |
- sudo losetup -d "$ESP_LOOP_DEV" |
+ sudo umount -d "$ESP_DIR" |
} |
cleanup() { |
@@ -154,6 +148,20 @@ cleanup() { |
set -e |
} |
+delete_prompt() { |
+ echo "An error occurred in your build so your latest output directory" \ |
+ "is invalid." |
+ read -p "Would you like to delete the output directory (y/N)? " SURE |
+ SURE="${SURE:0:1}" # Get just the first character |
+ if [ "${SURE}" == "y" ] ; then |
+ sudo rm -rf "$OUTPUT_DIR" |
+ echo "Deleted $OUTPUT_DIR" |
+ else |
+ echo "Not deleting $OUTPUT_DIR. Note dev server updates will not work" \ |
+ "until you successfully build another image or delete this directory" |
+ fi |
+} |
+ |
# ${DEV_IMAGE_ROOT} specifies the location of where developer packages will |
# be installed on the stateful dir. On a Chromium OS system, this will |
# translate to /usr/local |
@@ -187,7 +195,7 @@ setup_symlinks_on_root() { |
sudo ln -s "${2}" "${DEV_IMAGE_ROOT}/var" |
} |
-trap cleanup EXIT |
+trap "cleanup && delete_prompt" EXIT |
mkdir -p "$ROOT_FS_DIR" |
@@ -428,6 +436,8 @@ setup_symlinks_on_root "/usr/local" "/var" |
# Cleanup loop devices. |
cleanup |
+trap delete_prompt EXIT |
+ |
# Create the GPT-formatted image |
${SCRIPTS_DIR}/build_gpt.sh \ |
--arch=${ARCH} --board=${FLAGS_board} "${OUTPUT_DIR}" "${OUTPUT_IMG}" |