[OE-core] [PATCH] mkefidisk: Create interactive menu for the script

Bottazzini, Bruno bruno.bottazzini at intel.com
Tue Sep 8 13:19:19 UTC 2015


Ping

On Fri, 2015-09-04 at 19:19 -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 | 63 ++++++++++++++++++++++++++++++++++++++++----
>  1 file changed, 58 insertions(+), 5 deletions(-)
> 
> diff --git a/scripts/contrib/mkefidisk.sh b/scripts/contrib/mkefidisk.sh
> index 55f72b0..66e0e58 100755
> --- a/scripts/contrib/mkefidisk.sh
> +++ b/scripts/contrib/mkefidisk.sh
> @@ -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=`blkid -o list | grep "/dev/$disk" | grep "not mounted"`
> +            if [ -n "$mounted" ]; then
> +                UNMOUNTED_AVAILABLES="$UNMOUNTED_AVAILABLES /dev/$disk\n"
> +                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\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 +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





More information about the Openembedded-core mailing list