#!/bin/sh
# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# Force cleans loopback devices from within your chroot environment.  This
# script is to help mitigate losing loopback devices on build_images
# failures.  This script only affects mountpoints and loopback devices
# that were created within this chroot.

# --- 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 ---

# Script must be run inside the chroot.
assert_inside_chroot

get_default_board

DEFINE_string output_root "$DEFAULT_BUILD_ROOT/images" \
  "Directory in which to place image result directories (named by version)"
DEFINE_string board "$DEFAULT_BOARD" \
  "The board to build an image for."

# Parse command line.
FLAGS "$@" || exit 1
eval set -- "${FLAGS_ARGV}"

if [[ -z "${FLAGS_board}" ]]; then
  error "--board is required."
  exit 1
fi

OUTPUT_DIR="${FLAGS_output_root}/${FLAGS_board}"

echo 'This will unmount all directories matching /tmp/esp.*'
echo "and any directory under $OUTPUT_DIR"
read -p "Are you sure (y/N)? " SURE
SURE="${SURE:0:1}" # Get just the first character
if [ "${SURE}" != "y" ]; then
  echo "Ok, better safe than sorry."
  exit 1
fi

sudo umount "$OUTPUT_DIR"/*/* 2> /dev/null
sudo umount /tmp/esp.* 2> /dev/null
sudo losetup -d /dev/loop* 2> /dev/null
