mkefidisk: Create interactive menu for the script

If it is passed only the image parameter, it will show some interactive
options to help to conclude the script.

With this patch it will detect devices available in the machine, asking
to choose what it is wanted to be flashed.

it will suggest the target device. If it is a SD card the suggestion
is /dev/mmcblk0. If it is a pendrive it will suggest to use /dev/sda.

(From OE-Core rev: 768fb686b8dfd47ff4cb4833ce166c213502f419)

Signed-off-by: Bruno Bottazzini <bruno.bottazzini@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Bruno Bottazzini 2015-09-14 18:29:04 -03:00 committed by Richard Purdie
parent 6c05e6a71a
commit 935a8bd1d9
1 changed files with 58 additions and 5 deletions

View File

@ -152,8 +152,55 @@ unmount() {
# Parse and validate arguments
#
if [ $# -lt 3 ] || [ $# -gt 4 ]; then
usage
exit 1
if [ $# -eq 1 ]; then
AVAILABLE_DISK=`lsblk | grep "disk" | cut -f 1 -d " "`
X=0
for disk in `echo $AVAILABLE_DISK`; do
mounted=`lsblk /dev/$disk | awk {'print $7'} | sed "s/MOUNTPOINT//"`
if [ -z "$mounted" ]; then
UNMOUNTED_AVAILABLES="$UNMOUNTED_AVAILABLES /dev/$disk"
info "$X - /dev/$disk"
X=`expr $X + 1`
fi
done
if [ $X -eq 0 ]; then
die "No unmounted device found."
fi
read -p "Choose unmounted device number: " DISK_NUMBER
X=0
for line in `echo $UNMOUNTED_AVAILABLES`; do
if [ $DISK_NUMBER -eq $X ]; then
DISK_TO_BE_FLASHED=$line
break
else
X=`expr $X + 1`
fi
done
if [ -z "$DISK_TO_BE_FLASHED" ]; then
die "Option \"$DISK_NUMBER\" is invalid. Choose a valid option"
else
if [ -z `echo $DISK_TO_BE_FLASHED | grep "mmc"` ]; then
TARGET_TO_BE_BOOT="/dev/sda"
else
TARGET_TO_BE_BOOT="/dev/mmcblk0"
fi
fi
echo ""
echo "Choose a name of the device that will be boot from"
echo -n "Recommended name is: "
info "$TARGET_TO_BE_BOOT"
read -p "Is target device okay? [y/N]: " RESPONSE
if [ "$RESPONSE" != "y" ]; then
read -p "Choose target device name: " TARGET_TO_BE_BOOT
fi
echo ""
if [ -z "$TARGET_TO_BE_BOOT" ]; then
die "Error: choose a valid target name"
fi
else
usage
exit 1
fi
fi
if [ "$1" = "-v" ]; then
@ -162,9 +209,15 @@ if [ "$1" = "-v" ]; then
shift
fi
DEVICE=$1
HDDIMG=$2
TARGET_DEVICE=$3
if [ -z "$AVAILABLE_DISK" ]; then
DEVICE=$1
HDDIMG=$2
TARGET_DEVICE=$3
else
DEVICE=$DISK_TO_BE_FLASHED
HDDIMG=$1
TARGET_DEVICE=$TARGET_TO_BE_BOOT
fi
LINK=$(readlink $DEVICE)
if [ $? -eq 0 ]; then