[OE-core] [PATCH] scripts: Create interactive menu for mkefidisk script
Bottazzini, Bruno
bruno.bottazzini at intel.com
Thu Sep 3 16:28:58 UTC 2015
Bump
On Tue, 2015-09-01 at 16:22 -0300, Bruno Bottazzini wrote:
> 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.
>
> Signed-off-by: Bruno Bottazzini <bruno.bottazzini at intel.com>
> ---
> scripts/contrib/mkefidisk.sh | 60 ++++++++++++++++++++++++++++++++++++++++----
> 1 file changed, 55 insertions(+), 5 deletions(-)
>
> diff --git a/scripts/contrib/mkefidisk.sh b/scripts/contrib/mkefidisk.sh
> index 55f72b0..7628de7 100755
> --- a/scripts/contrib/mkefidisk.sh
> +++ b/scripts/contrib/mkefidisk.sh
> @@ -152,8 +152,52 @@ unmount() {
> # Parse and validate arguments
> #
> if [ $# -lt 3 ] || [ $# -gt 4 ]; then
> - usage
> - exit 1
> + if [ $# -eq 1 ]; then
> + AVAILABLE_DISK=`fdisk -l | grep "Disk /" | cut -f 1 -d ':' | cut -f 2 -d ' '`
> + if [ -z "$AVAILABLE_DISK" ]; then
> + die "Starting mkefidisk.sh as root is required"
> + fi
> + echo "Available disks are"
> + X=0
> + for line in `echo $AVAILABLE_DISK`; do
> + info "$X - $line"
> + X=`expr $X + 1`
> + done
> + read -p "Choose flashable device number: " DISK_NUMBER
> + X=0
> + for line in `echo $AVAILABLE_DISK`; 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\n"
> + 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 +206,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
More information about the Openembedded-core
mailing list