[PATCH openbmc v6 16/18] initfs: update: handle no images to update

Andrew Jeffery andrew at aj.id.au
Thu Jun 23 16:11:35 AEST 2016


On Wed, 2016-06-22 at 19:30 -0500, OpenBMC Patches wrote:
> From: Milton Miller <miltonm at us.ibm.com>
> 
> Notify the user if image wildcard expansion fails instead of printing
> message about failing to find partition to flash.
> 

This kind of problem is why I have reservations about our early/late
shell scripts. I wonder how many more of these issues are lurking...

> The update script errors with the message that it can't figure out what
> partition to flash for /run/initramfs/image-* if there are no images
> pending.
> 
> Signed-off-by: Milton Miller <miltonm at us.ibm.com>
> ---
>  .../obmc-phosphor-initfs/files/obmc-update.sh               | 13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/meta-phosphor/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-update.sh b/meta-phosphor/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-update.sh
> index 1dbf65f..7120a18 100755
> --- a/meta-phosphor/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-update.sh
> +++ b/meta-phosphor/common/recipes-phosphor/obmc-phosphor-initfs/files/obmc-update.sh
> @@ -99,6 +99,7 @@ checkmount=y
>  whitelist=/run/initramfs/whitelist
>  image=/run/initramfs/image-
>  E="ERROR:"
> +imglist=
>  
>  while test "$1" != "${1#-}"
>  do
> @@ -184,7 +185,15 @@ then
>  	fi
>  fi
>  
> -for f in $image*
> +imglist=$(echo $image*)

If there are no wildcard matches doesn't this expand to the string
"/run/initramfs/image-*"? Why are we using echo in a subshell?

> +if test "$imglist" = "$image*" -a ! -e "$imglist"

What's the idea behind the first condition ("imglist" = "$image*")?
Won't they always be the same?

> +then
> +	# shell didn't expand the wildcard, so no files exist
> +	echo "No images found to update."

Is this worthy of the ERROR: prefix?

> +	imglist=
> +fi
> +
> +for f in $imglist

If imglist is empty don't we run into the same issue with findmtd, just
that we have printed the warning above? Should we exit?

Cheers,

Andrew

>  do
>  	m=$(findmtd ${f#$image})
>  	if test -z "$m"
> @@ -209,7 +218,7 @@ done
>  
>  if test -n "$doflash"
>  then
> -	for f in $image*
> +	for f in $imglist
>  	do
>  		if test ! -s $f
>  		then
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20160623/a4d6775f/attachment.sig>


More information about the openbmc mailing list