diff mbox series

[1/3] raspberrypi: post-image.sh handles many arguments

Message ID 20170923233007.13772-2-gael.portay@savoirfairelinux.com
State Superseded
Headers show
Series Fix Qt WE run-time issue on RPI3 | expand

Commit Message

Gaël PORTAY Sept. 23, 2017, 11:30 p.m. UTC
This post-image script now handles many optional arguments given
through the command-line.

Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com>
---
 board/raspberrypi/post-image.sh | 42 ++++++++++++++++++++++-------------------
 1 file changed, 23 insertions(+), 19 deletions(-)

Comments

Arnout Vandecappelle Sept. 24, 2017, 10:04 a.m. UTC | #1
On 24-09-17 01:30, Gaël PORTAY wrote:
> This post-image script now handles many optional arguments given
> through the command-line.
> 
> Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com>

 Can you evaluate how this patch interacts with [1] ? Note that I haven't looked
at either of them in detail.

[1] http://patchwork.ozlabs.org/patch/788904/


 Regards,
 Arnout

> ---
>  board/raspberrypi/post-image.sh | 42 ++++++++++++++++++++++-------------------
>  1 file changed, 23 insertions(+), 19 deletions(-)
> 
> diff --git a/board/raspberrypi/post-image.sh b/board/raspberrypi/post-image.sh
> index de972998b0..1b49f0ea30 100755
> --- a/board/raspberrypi/post-image.sh
> +++ b/board/raspberrypi/post-image.sh
> @@ -5,38 +5,42 @@ BOARD_NAME="$(basename ${BOARD_DIR})"
>  GENIMAGE_CFG="${BOARD_DIR}/genimage-${BOARD_NAME}.cfg"
>  GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
>  
> -case "${2}" in
> -	--add-pi3-miniuart-bt-overlay)
> -	if ! grep -qE '^dtoverlay=' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
> -		echo "Adding 'dtoverlay=pi3-miniuart-bt' to config.txt (fixes ttyAMA0 serial console)."
> -		cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
> +shift
> +while [ $# -ne 0 ]; do
> +	case "${1}" in
> +		--add-pi3-miniuart-bt-overlay)
> +		if ! grep -qE '^dtoverlay=' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
> +			echo "Adding 'dtoverlay=pi3-miniuart-bt' to config.txt (fixes ttyAMA0 serial console)."
> +			cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
>  
>  # fixes rpi3 ttyAMA0 serial console
>  dtoverlay=pi3-miniuart-bt
>  __EOF__
> -	fi
> -	;;
> -	--aarch64)
> -	# Run a 64bits kernel (armv8)
> -	sed -e '/^kernel=/s,=.*,=Image,' -i "${BINARIES_DIR}/rpi-firmware/config.txt"
> -	if ! grep -qE '^arm_control=0x200' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
> -		cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
> +		fi
> +		;;
> +		--aarch64)
> +		# Run a 64bits kernel (armv8)
> +		sed -e '/^kernel=/s,=.*,=Image,' -i "${BINARIES_DIR}/rpi-firmware/config.txt"
> +		if ! grep -qE '^arm_control=0x200' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
> +			cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
>  
>  # enable 64bits support
>  arm_control=0x200
>  __EOF__
> -	fi
> +		fi
>  
> -	# Enable uart console
> -	if ! grep -qE '^enable_uart=1' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
> -		cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
> +		# Enable uart console
> +		if ! grep -qE '^enable_uart=1' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
> +			cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
>  
>  # enable rpi3 ttyS0 serial console
>  enable_uart=1
>  __EOF__
> -	fi
> -	;;
> -esac
> +		fi
> +		;;
> +	esac
> +	shift
> +done
>  
>  rm -rf "${GENIMAGE_TMP}"
>  
>
Gaël PORTAY Sept. 24, 2017, 1:25 p.m. UTC | #2
Arnout,

On Sun, Sep 24, 2017 at 12:04:19PM +0200, Arnout Vandecappelle wrote:
> 
> On 24-09-17 01:30, Gaël PORTAY wrote:
> > This post-image script now handles many optional arguments given
> > through the command-line.
> > 
> > Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com>
> 
>  Can you evaluate how this patch interacts with [1] ? Note that I haven't looked
> at either of them in detail.
> 
> [1] http://patchwork.ozlabs.org/patch/788904/
>

Both patches does the same thing.

The only difference is that my patch parses arguments using a while loop
(and shifts the first argument), while the patch from Erik parses
argument using a for loop.

Here is a diff of both patches.

	-+: mine
	++: Erik

	@@ -27,9 +11,9 @@
	 -	if ! grep -qE '^dtoverlay=' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
	 -		echo "Adding 'dtoverlay=pi3-miniuart-bt' to config.txt (fixes ttyAMA0 serial console)."
	 -		cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
	-+shift
	-+while [ $# -ne 0 ]; do
	-+	case "${1}" in
My patch is using a while --^ (+ shift)
	++for arg in "$@"
	++do
	++	case "${arg}" in
Erik's solution uses a for -^
	 +		--add-pi3-miniuart-bt-overlay)
	 +		if ! grep -qE '^dtoverlay=' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
	 +			echo "Adding 'dtoverlay=pi3-miniuart-bt' to config.txt (fixes ttyAMA0 serial console)."

Erik's forgot to indent the esac.

Otherwise, only the `-+ shift' would have been present is that chunk [*]. 

	@@ -71,15 +55,12 @@
	  __EOF__
	 -	fi
	 -	;;
	--esac
	 +		fi
	 +		;;
	-+	esac
	-+	shift
[*]: ---^-----------^
	-+done
	+ esac
	
	++done
	++
	  rm -rf "${GENIMAGE_TMP}"

Regards,
Gael
diff mbox series

Patch

diff --git a/board/raspberrypi/post-image.sh b/board/raspberrypi/post-image.sh
index de972998b0..1b49f0ea30 100755
--- a/board/raspberrypi/post-image.sh
+++ b/board/raspberrypi/post-image.sh
@@ -5,38 +5,42 @@  BOARD_NAME="$(basename ${BOARD_DIR})"
 GENIMAGE_CFG="${BOARD_DIR}/genimage-${BOARD_NAME}.cfg"
 GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
 
-case "${2}" in
-	--add-pi3-miniuart-bt-overlay)
-	if ! grep -qE '^dtoverlay=' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
-		echo "Adding 'dtoverlay=pi3-miniuart-bt' to config.txt (fixes ttyAMA0 serial console)."
-		cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
+shift
+while [ $# -ne 0 ]; do
+	case "${1}" in
+		--add-pi3-miniuart-bt-overlay)
+		if ! grep -qE '^dtoverlay=' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
+			echo "Adding 'dtoverlay=pi3-miniuart-bt' to config.txt (fixes ttyAMA0 serial console)."
+			cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
 
 # fixes rpi3 ttyAMA0 serial console
 dtoverlay=pi3-miniuart-bt
 __EOF__
-	fi
-	;;
-	--aarch64)
-	# Run a 64bits kernel (armv8)
-	sed -e '/^kernel=/s,=.*,=Image,' -i "${BINARIES_DIR}/rpi-firmware/config.txt"
-	if ! grep -qE '^arm_control=0x200' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
-		cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
+		fi
+		;;
+		--aarch64)
+		# Run a 64bits kernel (armv8)
+		sed -e '/^kernel=/s,=.*,=Image,' -i "${BINARIES_DIR}/rpi-firmware/config.txt"
+		if ! grep -qE '^arm_control=0x200' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
+			cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
 
 # enable 64bits support
 arm_control=0x200
 __EOF__
-	fi
+		fi
 
-	# Enable uart console
-	if ! grep -qE '^enable_uart=1' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
-		cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
+		# Enable uart console
+		if ! grep -qE '^enable_uart=1' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
+			cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
 
 # enable rpi3 ttyS0 serial console
 enable_uart=1
 __EOF__
-	fi
-	;;
-esac
+		fi
+		;;
+	esac
+	shift
+done
 
 rm -rf "${GENIMAGE_TMP}"