* [PATCH] scripts: Create interactive menu for mkefidisk script
@ 2015-09-01 19:22 Bruno Bottazzini
2015-09-03 16:28 ` Bottazzini, Bruno
2015-09-03 23:36 ` Saul Wold
0 siblings, 2 replies; 5+ messages in thread
From: Bruno Bottazzini @ 2015-09-01 19:22 UTC (permalink / raw)
To: openembedded-core
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@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
--
2.5.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH] scripts: Create interactive menu for mkefidisk script
2015-09-01 19:22 [PATCH] scripts: Create interactive menu for mkefidisk script Bruno Bottazzini
@ 2015-09-03 16:28 ` Bottazzini, Bruno
2015-09-03 23:36 ` Saul Wold
1 sibling, 0 replies; 5+ messages in thread
From: Bottazzini, Bruno @ 2015-09-03 16:28 UTC (permalink / raw)
To: openembedded-core
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@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
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] scripts: Create interactive menu for mkefidisk script
2015-09-01 19:22 [PATCH] scripts: Create interactive menu for mkefidisk script Bruno Bottazzini
2015-09-03 16:28 ` Bottazzini, Bruno
@ 2015-09-03 23:36 ` Saul Wold
2015-09-04 13:32 ` Bottazzini, Bruno
1 sibling, 1 reply; 5+ messages in thread
From: Saul Wold @ 2015-09-03 23:36 UTC (permalink / raw)
To: Bruno Bottazzini, openembedded-core, Hart, Darren
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.
> Signed-off-by: Bruno Bottazzini <bruno.bottazzini@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
>
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] scripts: Create interactive menu for mkefidisk script
2015-09-03 23:36 ` Saul Wold
@ 2015-09-04 13:32 ` Bottazzini, Bruno
2015-09-04 13:36 ` Bottazzini, Bruno
0 siblings, 1 reply; 5+ messages in thread
From: Bottazzini, Bruno @ 2015-09-04 13:32 UTC (permalink / raw)
To: Saul Wold; +Cc: Hart, Darren, openembedded-core
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
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@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
> >
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] scripts: Create interactive menu for mkefidisk script
2015-09-04 13:32 ` Bottazzini, Bruno
@ 2015-09-04 13:36 ` Bottazzini, Bruno
0 siblings, 0 replies; 5+ messages in thread
From: Bottazzini, Bruno @ 2015-09-04 13:36 UTC (permalink / raw)
To: Saul Wold; +Cc: Hart, Darren, openembedded-core
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@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
> > >
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-09-04 13:37 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-01 19:22 [PATCH] scripts: Create interactive menu for mkefidisk script Bruno Bottazzini
2015-09-03 16:28 ` Bottazzini, Bruno
2015-09-03 23:36 ` Saul Wold
2015-09-04 13:32 ` Bottazzini, Bruno
2015-09-04 13:36 ` Bottazzini, Bruno
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.