From 0a0defd3256ff5e29e3b4d129a04fb7546bc31ac Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 30 Sep 2023 18:41:57 +0100 Subject: simplify initialising variables in shell scripts Signed-off-by: Leah Rowe --- script/build/boot/roms_helper | 48 ++++++++++--------------------------------- script/build/release/roms | 10 ++------- script/build/release/src | 10 +++------ script/handle/make/config | 44 +++++++++++---------------------------- script/handle/make/file | 3 +-- script/update/blobs/inject | 8 ++------ script/update/project/repo | 7 +------ script/update/project/trees | 7 +------ 8 files changed, 33 insertions(+), 104 deletions(-) (limited to 'script') 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" } -- cgit v1.2.1