Do not rely on bashisms and behaviour undefined by the POSIX specification. Part 2

Signed-off-by: Ferass 'Vitali64' EL HAFIDI <vitali64pmemail@protonmail.com>
fsdg20230625
Ferass 'Vitali64' EL HAFIDI 2022-12-28 19:29:18 +01:00 committed by Leah Rowe
parent f787044642
commit 7f5dfebf7d
14 changed files with 42 additions and 37 deletions

View File

@ -1,6 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env sh
# SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com> # SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com>
# SPDX-FileCopyrightText: 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# SPDX-License-Identifier: GPL-3.0-only # SPDX-License-Identifier: GPL-3.0-only
board="${1}" board="${1}"
@ -16,10 +17,10 @@ Download_needed(){
for need in ${needs}; do for need in ${needs}; do
case ${need} in case ${need} in
*ME*) *ME*)
Extract_me || _failed+=" me" Extract_me || _failed="${_failed} me"
;; ;;
*MRC*) *MRC*)
./download mrc || _failed+=" mrc" ./download mrc || _failed="${_failed} mrc"
;; ;;
esac esac
done done
@ -96,23 +97,23 @@ set -- "resources/coreboot/${board}/config/*"
if [ "${CONFIG_HAVE_MRC}" = "y" ]; then if [ "${CONFIG_HAVE_MRC}" = "y" ]; then
printf 'haswell board detected, downloading mrc\n' printf 'haswell board detected, downloading mrc\n'
needs+=" MRC" needs="${needs} MRC"
fi fi
if [ "${CONFIG_HAVE_IFD_BIN}" = "y" ]; then if [ "${CONFIG_HAVE_IFD_BIN}" = "y" ]; then
printf 'board needs intel firmware descriptor\n' printf 'board needs intel firmware descriptor\n'
needs+=" IFD" needs="${needs} IFD"
fi fi
if [ "${CONFIG_HAVE_ME_BIN}" = "y" ]; then if [ "${CONFIG_HAVE_ME_BIN}" = "y" ]; then
printf 'board needs intel management engine\n' printf 'board needs intel management engine\n'
needs+=" ME" needs="${needs} ME"
fi fi
if [ "${CONFIG_HAVE_GBE_BIN}" = "y" ]; then if [ "${CONFIG_HAVE_GBE_BIN}" = "y" ]; then
printf 'board needs gigabit ethernet firmware\n' printf 'board needs gigabit ethernet firmware\n'
needs+=" GBE" needs="${needs} GBE"
fi fi
# Quickly exit without wasting more time if there are no blobs needed (GM45) # Quickly exit without wasting more time if there are no blobs needed (GM45)
@ -138,8 +139,7 @@ while read -r line ; do
me_dl_bkup=${2} me_dl_bkup=${2}
;; ;;
esac esac
done <<< $(eval "awk ' /\{.*${board_short}.*}{/ {flag=1;next} /\}/{flag=0} flag { print }' resources/blobs/sources") done << EOF
$(eval "awk ' /\{.*${board_short}.*}{/ {flag=1;next} /\}/{flag=0} flag { print }' resources/blobs/sources")
EOF
Download_needed Download_needed

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash #!/usr/bin/env sh
# script to automate extracting blobs from an existing vendor bios # script to automate extracting blobs from an existing vendor bios
# SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com> # SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com>

View File

@ -1,6 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env sh
# SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com> # SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com>
# SPDX-FileCopyrightText: 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# SPDX-License-Identifier: GPL-3.0-only # SPDX-License-Identifier: GPL-3.0-only
Fail(){ Fail(){
@ -53,10 +54,10 @@ Detect_board(){
filename=$(basename ${rom}) filename=$(basename ${rom})
case ${filename} in case ${filename} in
grub_*) grub_*)
board=$(cut -d '_' -f2-3 <<<${filename}) board=$(echo "${filename}" | cut -d '_' -f2-3)
;; ;;
seabios_withgrub_*) seabios_withgrub_*)
board=$(cut -d '_' -f3-4 <<<${filename}) board=$(echo "${filename}" | cut -d '_' -f3-4)
;; ;;
*) *)
return 1 return 1

View File

@ -1,9 +1,10 @@
#!/usr/bin/env bash #!/usr/bin/env sh
# helper script: download coreboot # helper script: download coreboot
# #
# Copyright (C) 2014, 2015, 2016, 2020, 2021 Leah Rowe <info@minifree.org> # Copyright (C) 2014, 2015, 2016, 2020, 2021 Leah Rowe <info@minifree.org>
# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com> # Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com>
# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@ -52,17 +53,17 @@ usage()
# In this script, set -u is used to check for undefined variables, and # In this script, set -u is used to check for undefined variables, and
# the test command doesn't do any lazy evaluation, so we can't use # the test command doesn't do any lazy evaluation, so we can't use
# a syntax like that: [ $# -eq 1 -a "$1" == "--help" ]. # a syntax like that: [ $# -eq 1 -a "$1" = "--help" ].
if [ $# -eq 1 ] && [ "$1" == "--help" ] ; then if [ $# -eq 1 ] && [ "$1" = "--help" ] ; then
usage usage
exit 0 exit 0
elif [ $# -eq 1 ] && [ "$1" == "--list-boards" ] ; then elif [ $# -eq 1 ] && [ "$1" = "--list-boards" ] ; then
list_supported_boards list_supported_boards
exit 0 exit 0
fi fi
[[ -f build_error ]] && rm -f build_error [ -f build_error ] && rm -f build_error
rm -f resources/coreboot/*/seen rm -f resources/coreboot/*/seen
@ -90,7 +91,7 @@ downloadfor() {
fi fi
# This is to override $cbrevision and $cbtree # This is to override $cbrevision and $cbtree
source "resources/coreboot/${board}/board.cfg" || touch ../build_error . "resources/coreboot/${board}/board.cfg" || touch ../build_error
if [ -f build_error ]; then if [ -f build_error ]; then
printf "ERROR: download/coreboot: problem sourcing %s/board.cfg\n" "${board}" printf "ERROR: download/coreboot: problem sourcing %s/board.cfg\n" "${board}"
return 1 return 1

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash #!/usr/bin/env sh
# helper script: downloads flashrom and patches it # helper script: downloads flashrom and patches it
# #

View File

@ -1,6 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env sh
# SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com> # SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com>
# SPDX-FileCopyrightText: 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# SPDX-License-Identifier: GPL-3.0-only # SPDX-License-Identifier: GPL-3.0-only
Print_help(){ Print_help(){
@ -72,8 +73,9 @@ while read -r line ; do
bkup_url=${2} bkup_url=${2}
;; ;;
esac esac
done <<< $(eval "awk ' /\{.*${name}.*}{/ {flag=1;next} /\}/{flag=0} flag { print }' resources/git/revisions") done << EOF
$(eval "awk ' /\{.*${name}.*}{/ {flag=1;next} /\}/{flag=0} flag { print }' resources/git/revisions")
EOF
Check_vars Check_vars
tmp_dir=$(mktemp -dt "${name}_XXXXX") tmp_dir=$(mktemp -dt "${name}_XXXXX")

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash #!/usr/bin/env sh
# helper script: Downloads GRUB and patches it. # helper script: Downloads GRUB and patches it.
# #

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash #!/usr/bin/env sh
# helper script: downloads ich9utils # helper script: downloads ich9utils
# #

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash #!/usr/bin/env sh
# #
# Copyright (C) 2020 Leah Rowe <info@minifree.org> # Copyright (C) 2020 Leah Rowe <info@minifree.org>
# #

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash #!/usr/bin/env sh
# helper script: Downloads MemTest86+ and patches it # helper script: Downloads MemTest86+ and patches it
# #

View File

@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env sh
# Download Intel MRC images # Download Intel MRC images
# #

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash #!/usr/bin/env sh
# #
# Copyright (C) 2015, 2016, 2021 Leah Rowe <info@minifree.org> # Copyright (C) 2015, 2016, 2021 Leah Rowe <info@minifree.org>
# #

View File

@ -1,9 +1,10 @@
#!/usr/bin/env bash #!/usr/bin/env sh
# helper script: download u-boot # helper script: download u-boot
# #
# Copyright (C) 2021 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> # Copyright (C) 2021 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com> # Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com>
# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@ -22,7 +23,7 @@
[ "x${DEBUG+set}" = 'xset' ] && set -v [ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e set -u -e
[[ -f build_error ]] && rm -f build_error [ -f build_error ] && rm -f build_error
list_supported_boards() { list_supported_boards() {
for board in resources/u-boot/*; do for board in resources/u-boot/*; do
@ -55,7 +56,7 @@ downloadfor() {
fi fi
# This is to override $ubrevision and $ubtree # This is to override $ubrevision and $ubtree
source "resources/u-boot/${board}/board.cfg" || touch build_error . "resources/u-boot/${board}/board.cfg" || touch build_error
if [ -f build_error ]; then if [ -f build_error ]; then
printf "ERROR: %s: problem sourcing %s/board.cfg\n" \ printf "ERROR: %s: problem sourcing %s/board.cfg\n" \
"download/u-boot" "${board}" "download/u-boot" "${board}"
@ -239,10 +240,10 @@ if [ $# -eq 0 ] ; then
download_uboot_board "${board}" download_uboot_board "${board}"
done done
exit 0 exit 0
elif [ $# -eq 1 -a "$1" == "--help" ] ; then elif [ $# -eq 1 ] && [ "$1" = "--help" ] ; then
usage usage
exit 0 exit 0
elif [ $# -eq 1 -a "$1" == "--list-boards" ] ; then elif [ $# -eq 1 ] && [ "$1" = "--list-boards" ] ; then
list_supported_boards list_supported_boards
exit 0 exit 0
elif [ $# -eq 1 ] ; then elif [ $# -eq 1 ] ; then

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash #!/usr/bin/env sh
# Copyright (C) 2021 Leah Rowe <info@minifree.org> # Copyright (C) 2021 Leah Rowe <info@minifree.org>
# #