diff options
author | Leah Rowe <leah@libreboot.org> | 2023-09-30 18:41:57 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2023-09-30 19:09:25 +0100 |
commit | 0a0defd3256ff5e29e3b4d129a04fb7546bc31ac (patch) | |
tree | 479d686f0578b506dbe3f862300e73c090ed8bcc | |
parent | 49b266eb4248f87d111e9babae86a873300afa03 (diff) |
simplify initialising variables in shell scripts
Signed-off-by: Leah Rowe <leah@libreboot.org>
-rwxr-xr-x | include/blobutil.sh | 26 | ||||
-rwxr-xr-x | include/err.sh | 12 | ||||
-rwxr-xr-x | script/build/boot/roms_helper | 48 | ||||
-rwxr-xr-x | script/build/release/roms | 10 | ||||
-rwxr-xr-x | script/build/release/src | 10 | ||||
-rwxr-xr-x | script/handle/make/config | 44 | ||||
-rwxr-xr-x | script/handle/make/file | 3 | ||||
-rwxr-xr-x | script/update/blobs/inject | 8 | ||||
-rwxr-xr-x | script/update/project/repo | 7 | ||||
-rwxr-xr-x | script/update/project/trees | 7 |
10 files changed, 52 insertions, 123 deletions
diff --git a/include/blobutil.sh b/include/blobutil.sh index 873d368d..51f11de9 100755 --- a/include/blobutil.sh +++ b/include/blobutil.sh @@ -4,7 +4,6 @@ _ua="Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0" _7ztest="a" -_b="" blobdir="blobs" appdir="${blobdir}/app" cbdir="coreboot/default" @@ -12,7 +11,6 @@ cbcfgsdir="config/coreboot" ifdtool="cbutils/default/ifdtool" cbfstool="cbutils/default/cbfstool" nvmutil="util/nvmutil/nvm" -boarddir="" pciromsdir="pciroms" mecleaner="$(pwd)/me_cleaner/me_cleaner.py" @@ -22,28 +20,18 @@ kbc1126_ec_dump="$(pwd)/${cbdir}/util/kbc1126/kbc1126_ec_dump" pfs_extract="$(pwd)/biosutilities/Dell_PFS_Extract.py" uefiextract="$(pwd)/uefitool/uefiextract" -setvars="EC_url=\"\"" -for x in EC_url_bkup EC_hash DL_hash DL_url DL_url_bkup E6400_VGA_DL_hash \ - E6400_VGA_DL_url E6400_VGA_DL_url_bkup E6400_VGA_offset E6400_VGA_romname \ - SCH5545EC_DL_url SCH5545EC_DL_url_bkup SCH5545EC_DL_hash MRC_url \ - MRC_url_bkup MRC_hash MRC_board _dest; do - setvars="${setvars}; ${x}=\"\"" -done +eval "$(setvars "" EC_url EC_url_bkup EC_hash DL_hash DL_url DL_url_bkup _dest \ + E6400_VGA_DL_hash E6400_VGA_DL_url E6400_VGA_DL_url_bkup E6400_VGA_offset \ + E6400_VGA_romname SCH5545EC_DL_url SCH5545EC_DL_url_bkup SCH5545EC_DL_hash \ + MRC_url MRC_url_bkup MRC_hash MRC_board archive rom board modifygbe _dl \ + new_mac release releasearchive _b boarddir)" -for x in archive rom board modifygbe new_mac release releasearchive _dl; do - setvars="${setvars}; ${x}=\"\"" -done - -for x in CONFIG_BOARD_DELL_E6400 CONFIG_HAVE_MRC CONFIG_HAVE_ME_BIN \ +eval "$(setvars "" CONFIG_BOARD_DELL_E6400 CONFIG_HAVE_MRC CONFIG_HAVE_ME_BIN \ CONFIG_ME_BIN_PATH CONFIG_KBC1126_FIRMWARE CONFIG_KBC1126_FW1 \ CONFIG_KBC1126_FW1_OFFSET CONFIG_KBC1126_FW2 CONFIG_KBC1126_FW2_OFFSET \ CONFIG_VGA_BIOS_FILE CONFIG_VGA_BIOS_ID CONFIG_GBE_BIN_PATH \ CONFIG_INCLUDE_SMSC_SCH5545_EC_FW CONFIG_SMSC_SCH5545_EC_FW_FILE \ - CONFIG_IFD_BIN_PATH CONFIG_MRC_FILE; do - setvars="${setvars}; ${x}=\"\"" -done - -eval "${setvars}" + CONFIG_IFD_BIN_PATH CONFIG_MRC_FILE)" check_defconfig() { diff --git a/include/err.sh b/include/err.sh index 96252534..9f7c63b0 100755 --- a/include/err.sh +++ b/include/err.sh @@ -1,6 +1,18 @@ # SPDX-License-Identifier: MIT # SPDX-FileCopyrightText: 2022, 2023 Leah Rowe <leah@libreboot.org> +setvars() +{ + _setvars="" + [ $# -lt 2 ] && err "setvars: too few arguments" + val="${1}" + shift 1 + for var in $@; do + _setvars="${var}=\"${val}\"; ${_setvars}" + done + printf "%s\n" "${_setvars% }" +} + err() { printf "ERROR %s: %s\n" "${0}" "${1}" 1>&2 diff --git a/script/build/boot/roms_helper b/script/build/boot/roms_helper index a92012e1..dcadc4b9 100755 --- a/script/build/boot/roms_helper +++ b/script/build/boot/roms_helper @@ -14,41 +14,21 @@ set -u -e read projectname < projectname +seavgabiosrom="elf/seabios/default/libgfxinit/vgabios.bin" +grub_background="background1280x800.png" +grubelf="elf/grub/grub.elf" cfgsdir="config/coreboot" - -blobs_required="" - -ubdir="" kmapdir="config/grub/keymap" -grub_timeout="" -grub_scan_disk="undefined" -tree="undefined" -arch="undefined" - # Disable all payloads by default. # target.cfg files have to specifically enable [a] payload(s) -payload_grub="n" -payload_grub_withseabios="n" # seabios chainloaded from grub -payload_seabios="n" -payload_seabios_withgrub="n" # i386-coreboot grub from SeaBIOS boot menu -payload_memtest="n" -payload_uboot="n" -uboot_config="undefined" - -romdir="" -cbdir="" -cbfstool="" -corebootrom="" -seavgabiosrom="elf/seabios/default/libgfxinit/vgabios.bin" -grub_background="background1280x800.png" +eval "$(setvars "n" payload_grub payload_grub_withseabios payload_seabios \ + payload_seabios_withgrub payload_memtest payload_uboot)" -initmode="" -displaymode="" -cbcfg="" -targetdir="" +eval "$(setvars "" romdir cbdir cbfstool corebootrom initmode displaymode \ + cbcfg targetdir grub_timeout ubdir blobs_required)" -grubelf="elf/grub/grub.elf" +eval "$(setvars "undefined" grub_scan_disk tree arch uboot_config)" # main() is in include/boot.sh @@ -120,13 +100,9 @@ configure_target() # Override all payload directives with cmdline args if [ ! -z ${_payload} ]; then printf "setting payload to: %s\n" "${_payload}" - payload_grub="n" - payload_grub_withseabios="n" # seabios chainloaded from grub - payload_seabios="n" - payload_seabios_withgrub="n" # i386-coreboot grub from SeaBIOS - payload_uboot="n" - payload_memtest="n" - + eval "$(setvars "n" payload_grub payload_grub_withseabios \ + payload_seabios payload_seabios_withgrub payload_uboot \ + payload_memtest)" eval "payload_${_payload}=y" fi } @@ -494,10 +470,8 @@ moverom() { [ -d "${newrompath%/*}" ] || mkdir -p "${newrompath%/*}/" || \ err "moverom: cannot create rom directory: \"${newrompath%/*}\"" - [ "${blobs_required}" = "n" ] && \ newrompath="${newrompath%.rom}_noblobs.rom" - cp "${rompath}" "${newrompath}" || err "moverom: can't copy rom" } diff --git a/script/build/release/roms b/script/build/release/roms index b19d404c..4a18037d 100755 --- a/script/build/release/roms +++ b/script/build/release/roms @@ -11,11 +11,8 @@ read projectname < projectname version="version-unknown" versiondate="version-date-unknown" tree="default" -target="" -CONFIG_HAVE_MRC="" -CONFIG_HAVE_ME_BIN="" -CONFIG_KBC1126_FIRMWARE="" -CONFIG_INCLUDE_SMSC_SCH5545_EC_FW="" +eval "$(setvars "" target CONFIG_HAVE_MRC CONFIG_HAVE_ME_BIN \ + CONFIG_KBC1126_FIRMWARE CONFIG_INCLUDE_SMSC_SCH5545_EC_FW)" ifdtool="cbutils/${tree}/ifdtool" cbfstool="cbutils/${tree}/cbfstool" microcode_required="y" @@ -25,12 +22,10 @@ main() printf "Building ROM image archives for version %s\n" "${version}" init_check - for romdir in bin/*; do [ -d "${romdir}" ] || continue make_archive "${romdir}" done - printf "\nROM archives available at release/%s/roms/\n\n" "${version}" } @@ -51,7 +46,6 @@ init_check() [ ! -d "release/${version}/roms/" ] || \ rm -Rf "release/${version}/roms/" || \ err "init_check: !rm -Rf release/${version}/roms/" - if [ ! -d "release/${version}/roms/" ]; then mkdir -p "release/${version}/roms/" || \ err "init_check: !mkdir -p release/${version}/roms/" diff --git a/script/build/release/src b/script/build/release/src index 2e80b0c4..c29869f5 100755 --- a/script/build/release/src +++ b/script/build/release/src @@ -21,18 +21,14 @@ filelist="${filelist} checkversion" version="version-unknown" versiondate="version-date-unknown" -reldir="" -dirname="" -srcdir="" +eval "$(setvars "" reldir dirname srcdir)" printf "Building source code archive, version %s\n" "${version}" main() { - [ -f version ] && \ - read version < version - [ -f versiondate ] && \ - read versiondate < versiondate + [ -f version ] && read version < version + [ -f versiondate ] && read versiondate < versiondate create_release_directory download_modules diff --git a/script/handle/make/config b/script/handle/make/config index be6f1538..72cba193 100755 --- a/script/handle/make/config +++ b/script/handle/make/config @@ -15,25 +15,10 @@ read our_version < version export LOCALVERSION="-${projectname}-${our_version}" -arch="" -cfgsdir="" -codedir="" -config="" -config_name="" -crossgcc_ada="" -elfdir="" -listfile="" -mode="" -project="" -romtype="" -target="" -target_dir="" -targets="" -tree="" -cbfstool="" - -tmpclean="$(mktemp -d -t makeclean.XXXXXXXXXX)" || \ - fail "can't make tmpclean dir" +eval "$(setvars "" arch cfgsdir codedir config config_name crossgcc_ada mode \ + elfdir listfile project romtype target target_dir targets tree cbfstool)" + +tmpclean="$(mktemp -d -t makeclean.XXXXXXXXXX)" || fail "!mkdir tmpclean" main() { @@ -115,8 +100,7 @@ handle_src_tree() mkdir -p "${elfdir}/${target}" || \ fail "handle_src_tree: !mkdir -p ${elfdir}/${target}" - tree="undefined" - arch="undefined" + eval "$(setvars "undefined" arch tree)" romtype="normal" [ ! -f "${target_dir}/target.cfg" ] && \ @@ -218,10 +202,9 @@ check_config() dest_dir="${elfdir}/${target}/${config_name}" # TODO: very hacky check. do it properly (based on build.list) for elftest in "${dest_dir}"/*; do - if [ -f "${elftest}" ]; then - printf "Build already exists, so skipping build\n" 1>&2 - return 1 - fi + [ -f "${elftest}" ] || continue + printf "Build already exists, so skipping build\n" 1>&2 + return 1 done mkdir -p "${dest_dir}" || \ fail "check_config: cannot mkdir: ${dest_dir}" @@ -255,15 +238,12 @@ run_make_command() copy_elf() { - if [ "${project}" = "coreboot" ]; then - modify_coreboot_rom || \ - fail "copy_elf: cannot prepare coreboot image" - fi + [ "${project}" != "coreboot" ] || modify_coreboot_rom || \ + fail "copy_elf: cannot prepare coreboot image" while read f; do - [ ! -f "${codedir}/$f" ] || \ - cp "${codedir}/${f}" "${dest_dir}/" || \ - fail "copy_elf: cannot copy elf file" + [ ! -f "${codedir}/$f" ] || cp "${codedir}/${f}" \ + "${dest_dir}/" || fail "copy_elf: cannot copy elf file" done < ${listfile} ./handle make file -c "${codedir}" || \ diff --git a/script/handle/make/file b/script/handle/make/file index 0d0d6f3c..19807425 100755 --- a/script/handle/make/file +++ b/script/handle/make/file @@ -7,8 +7,7 @@ set -u -e . "include/err.sh" -mode="" -project="" +eval "$(setvars "" mode project)" main() { diff --git a/script/update/blobs/inject b/script/update/blobs/inject index 01d4cfd6..654af5d3 100755 --- a/script/update/blobs/inject +++ b/script/update/blobs/inject @@ -292,12 +292,10 @@ inject_blob_dell_e6400_vgarom_nvidia() inject_blob_smsc_sch5545_ec() { rom="${1}" - _sch5545ec_location="${CONFIG_SMSC_SCH5545_EC_FW_FILE#../../}" - if [ ! -f "${_sch5545ec_location}" ]; then + [ -f "${_sch5545ec_location}" ] || \ err "inject_blob_smsc_sch5545_ec: SCH5545 fw missing" - fi "${cbfstool}" "${rom}" add -f "${_sch5545ec_location}" \ -n sch5545_ecfw.bin -t raw || \ @@ -307,12 +305,10 @@ inject_blob_smsc_sch5545_ec() modify_gbe() { printf "changing mac address in gbe to ${new_mac}\n" - - rom="${1}" - [ -z ${CONFIG_GBE_BIN_PATH} ] && \ err "modify_gbe: ${board}: CONFIG_GBE_BIN_PATH not set" + rom="${1}" _gbe_location=${CONFIG_GBE_BIN_PATH#../../} [ -f "${_gbe_location}" ] || \ diff --git a/script/update/project/repo b/script/update/project/repo index 4695b52b..c0cec1b6 100755 --- a/script/update/project/repo +++ b/script/update/project/repo @@ -8,13 +8,8 @@ . "include/git.sh" . "include/option.sh" -name="" -rev="" -loc="" -url="" -bkup_url="" +eval "$(setvars "" name rev loc url bkup_url depend)" tmp_dir="${PWD}/tmp/gitclone" -depend="" main() { diff --git a/script/update/project/trees b/script/update/project/trees index 7038cfde..1214ab21 100755 --- a/script/update/project/trees +++ b/script/update/project/trees @@ -11,11 +11,7 @@ set -u -e . "include/git.sh" . "include/option.sh" -_target="" -tree="" -rev="" -project="" -cfgsdir="" +eval "$(setvars "" _target tree rev project cfgsdir)" main() { @@ -40,7 +36,6 @@ main() download_for_target "${x}" || \ err "${project}/${target}: cannot download source tree" done - rm -f "${cfgsdir}"/*/seen || err_rm_seen "main 3" } |