[OE-core] [PATCH] scripts: Create interactive menu for mkefidisk script
Bottazzini, Bruno
bruno.bottazzini at intel.com
Fri Sep 4 13:36:36 UTC 2015
On Fri, 2015-09-04 at 10:32 -0300, Bottazzini, Bruno wrote:
> On Thu, 2015-09-03 at 16:36 -0700, Saul Wold wrote:
> > On 09/01/2015 12:22 PM, 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.
> > >
> >
> > I am little concerned by this patch since it allows the root disk to be
> > selected, even if someone can type it on the command line, but offering
> > it in list would make someone believe that it was OK.
>
> You are totally right.
>
> However, the script already warn and handles this kind of situation.
> Also, this gives free will to the user. I don't see this as problem but
> something, besides as you have told the user may pass it as argument
Sorry correcting: s/I don't see this as problem but something/I don't
see this as problem but as feature/
> too. Maybe we can change the header message telling "all detect storage"
> or something like this?
>
> I was wondering if the user wants to flash a H.D. when running a live CD
> and then maybe the root may be a right choice.
>
> Since I have started using this patch, it got really faster when it
> comes flashing the device (I don't have to remember parameters every
> time). I think this will be a really good new feature for this script.
>
> >
> >
> > > 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"
> > The \n usage is probably wrong here.
> >
> > > + 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