diff options
author | Leah Rowe <leah@libreboot.org> | 2025-09-11 10:17:50 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2025-09-11 10:29:59 +0100 |
commit | 4999a49de39667b3239fc2010d0e99c958b29417 (patch) | |
tree | dfa4897896de0bc0c93c5133052a566b5339c138 | |
parent | 5cfe54b06d74e6392fc7312c41b5ca299704f7ca (diff) |
xbmk: don't use backticks for command substitution
the newer way handles escaped characters better, and it
can be nested more easily. it's also more readable.
personally, i prefer the old way, because it's more
minimalist, but it occurs to me that a lot of people
nowadays don't know about backticks, but they do know
of the modern way.
to make the code more readable, i have modernised it.
Signed-off-by: Leah Rowe <leah@libreboot.org>
-rw-r--r-- | config/data/coreboot/mkhelper.cfg | 4 | ||||
-rw-r--r-- | include/get.sh | 14 | ||||
-rw-r--r-- | include/init.sh | 25 | ||||
-rw-r--r-- | include/inject.sh | 13 | ||||
-rw-r--r-- | include/lib.sh | 20 | ||||
-rw-r--r-- | include/mrc.sh | 2 | ||||
-rw-r--r-- | include/release.sh | 4 | ||||
-rw-r--r-- | include/rom.sh | 6 | ||||
-rw-r--r-- | include/tree.sh | 20 | ||||
-rw-r--r-- | include/vendor.sh | 6 |
10 files changed, 58 insertions, 56 deletions
diff --git a/config/data/coreboot/mkhelper.cfg b/config/data/coreboot/mkhelper.cfg index d4de718e..19626289 100644 --- a/config/data/coreboot/mkhelper.cfg +++ b/config/data/coreboot/mkhelper.cfg @@ -8,8 +8,8 @@ seavgabiosrom="elf/seabios/default/default/libgfxinit/vgabios.bin" pv="payload_seabios payload_memtest payload_grub payload_grubsea" v="initmode ubootelf grub_scan_disk uboot_config grubtree grubelf pname" v="$v displaymode tmprom newrom payload_uboot" -eval `setvars "n" $pv` -eval `setvars "" $v` +eval "$(setvars "n" $pv)" +eval "$(setvars "" $v)" premake="corebootpremake" mkhelper="coreboot_pad_one_byte" diff --git a/include/get.sh b/include/get.sh index ecfd0ba5..bee00fe1 100644 --- a/include/get.sh +++ b/include/get.sh @@ -2,8 +2,8 @@ # Copyright (c) 2020-2021,2023-2025 Leah Rowe <leah@libreboot.org> # Copyright (c) 2022 Caleb La Grange <thonkpeasant@protonmail.com> -eval "`setvars "" loc url bkup_url subcurl subhash subgit subgit_bkup \ - depend subcurl_bkup`" +eval "$(setvars "" loc url bkup_url subcurl subhash subgit subgit_bkup \ + depend subcurl_bkup)" tmpgit="$xbtmp/gitclone" tmpgitcache="$xbtmp/tmpgit" @@ -16,8 +16,8 @@ fetch_targets() fetch_project() { - eval "`setvars "" xtree`" - eval "`setcfg "config/git/$project/pkg.cfg"`" + eval "$(setvars "" xtree)" + eval "$(setcfg "config/git/$project/pkg.cfg")" chkvars url bkup_url && [ -n "$xtree" ] && x_ ./mk -f coreboot "$xtree" [ -z "$depend" ] || for d in $depend ; do @@ -55,8 +55,8 @@ git_prep() fetch_submodule() { mcfgdir="$mdir/${1##*/}"; eval \ - "`setvars "" subhash subgit subgit_bkup subcurl subcurl_bkup st`" - eval "`setcfg "$mcfgdir/module.cfg" 0`" + "$(setvars "" subhash subgit subgit_bkup subcurl subcurl_bkup st)" + eval "$(setcfg "$mcfgdir/module.cfg" 0)" for xt in git curl; do _seval="if [ -n \"\$sub$xt\" ] || [ -n \"\$sub${xt}_bkup\" ]" @@ -133,7 +133,7 @@ try_copy() try_git() { - gitdest="`findpath "$1"`" || err "Can't get readpath for '$1'" + gitdest="$(findpath "$1" || err "Can't get readpath for '$1'")" || err x_ rm -Rf "$tmpgitcache" [ -d "$gitdest" ] || ( x_ git clone "$2" "$tmpgitcache" ) || return 1 diff --git a/include/init.sh b/include/init.sh index d2ec4f16..4b389b69 100644 --- a/include/init.sh +++ b/include/init.sh @@ -13,13 +13,13 @@ projectsite="https://libreboot.org/" [ -z "${PATH+x}" ] && \ export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" -eval "`setvars "" _nogit board reinstall versiondate aur_notice configdir \ +eval "$(setvars "" _nogit board reinstall versiondate aur_notice configdir \ datadir version xbmkpwd relname xbmkpwd xbtmp python pyver xbmklock \ - cvxbmk cvchk xbmkpath is_child basetmp`" + cvxbmk cvchk xbmkpath is_child basetmp)" xbmk_init() { - xbmkpwd="`pwd`" || err "Cannot generate PWD" + xbmkpwd="$(pwd || err "Cannot generate PWD")" || err xbmklock="$xbmkpwd/lock" basetmp="$xbmkpwd/xbmkwd" @@ -41,7 +41,7 @@ xbmkpkg() [ $# -lt 2 ] && err "fewer than two arguments" [ $# -gt 2 ] && reinstall="$3" - eval "`setcfg "config/dependencies/$2"`" + eval "$(setcfg "config/dependencies/$2")" chkvars pkg_add pkglist x_ $pkg_add $pkglist @@ -94,12 +94,12 @@ xbmk_set_env() xbmk_child_set_tmp() { - eval `setvars "" xbtmp badtmp xbtmpchk xbtmpname` + eval "$(setvars "" xbtmp badtmp xbtmpchk xbtmpname)" [ -z "${TMPDIR+x}" ] && export TMPDIR="$basetmp" # extremely pedantic safety checks on TMPDIR - xbtmpchk="`findpath "$TMPDIR" || err`" || err + xbtmpchk="$(findpath "$TMPDIR" || err "!findpath $TMPDIR")" || err [ "$xbtmpchk" = "${xbtmpchk#"$basetmp/"}" ] && \ badtmp="not a subdirectory in $basetmp" [ -z "$badtmp" ] && xbtmpname="${xbtmpchk#"$basetmp/"}" && \ @@ -130,7 +130,7 @@ xbmk_parent_check_tmp() { export TMPDIR="$basetmp" - xbmklist="`mktemp || err "can't make tmplist"`" || err + xbmklist="$(mktemp || err "can't make tmplist")" || err x_ rm -f "$xbmklist" x_ touch "$xbmklist" for xtmpdir in "$basetmp"/xbmk_*; do @@ -140,7 +140,7 @@ xbmk_parent_check_tmp() done # set up a unified temporary directory, for common deletion later: - export TMPDIR="`mktemp -d -t xbmk_XXXXXXXX || err`" || err + export TMPDIR="$(x_ mktemp -d -t xbmk_XXXXXXXX)" || err xbtmp="$TMPDIR" while read -r xtmpdir; do @@ -198,7 +198,7 @@ xbmk_set_pyver() pybin python3 1>/dev/null || python="python" pyver="2" && [ "$python" = "python3" ] && pyver="3" pybin "$python" 1>/dev/null || pyver="" - [ -z "$pyver" ] || "`pybin "$python"`" -c "$pyv" 1>/dev/null \ + [ -z "$pyver" ] || "$(x_ pybin "$python")" -c "$pyv" 1>/dev/null \ 2>/dev/null || err "Cannot detect host Python version." [ -n "$pyver" ] && \ pyver="$("$(pybin "$python")" -c "$pyv" | awk '{print $1}')" && \ @@ -209,7 +209,7 @@ xbmk_set_pyver() # set up python v3.x in PATH, in case it's not set up correctly. # see code above that detected the correct python3 command. x_ cd "$xbtmp/xbmkpath" - x_ ln -s "`pybin "$python"`" python + x_ ln -s "$(x_ pybin "$python")" python || err ) || err "Can't set up python symlink in $xbtmp/xbmkpath"; : } @@ -226,7 +226,7 @@ pybin() # ideally, don't rely on PATH or hardcoded paths if python venv. # use the *real*, direct executable linked to by the venv symlink - if [ $venv -gt 0 ] && [ -L "`command -v "$1" 2>/dev/null`" ]; then + if [ $venv -gt 0 ] && [ -L "$(command -v "$1" 2>/dev/null)" ]; then pypath="$(findpath \ "$(command -v "$1" 2>/dev/null)" 2>/dev/null || :)" [ -e "$pypath" ] && [ ! -d "$pypath" ] && \ @@ -257,7 +257,8 @@ xbmk_git_init() x_ date --version | grep "GNU coreutils" 1>/dev/null 2>/dev/null || \ err "Non-GNU date implementation; current use relies on GNU date" - eval "`setvars "$(date -Rud @$versiondate)" cdate _nogit`" + eval "$(setvars "$(x_ date -Rud @$versiondate)" cdate _nogit || err)" \ + err x_ git init 1>/dev/null 2>/dev/null x_ git add -A . 1>/dev/null 2>/dev/null diff --git a/include/inject.sh b/include/inject.sh index 77d99874..4ed6d7b6 100644 --- a/include/inject.sh +++ b/include/inject.sh @@ -12,15 +12,15 @@ cv="CONFIG_GBE_BIN_PATH" [ -n "$cvxbmk" ] && cv="$cv $cvxbmk" [ -n "$cvchk" ] && cv="$cv $cvchk" -eval "`setvars "" archive boarddir IFD_platform ifdprefix tree new_mac \ - tmpromdir board xchanged $cv`" +eval "$(setvars "" archive boarddir IFD_platform ifdprefix tree new_mac \ + tmpromdir board xchanged $cv)" inject() { remkdir "$tmpromdel" [ $# -lt 1 ] && err "No options specified" - eval "`setvars "" nuke new_mac xchanged`" + eval "$(setvars "" nuke new_mac xchanged)" archive="$1"; new_mac="xx:xx:xx:xx:xx:xx" @@ -53,7 +53,8 @@ check_release() [ -L "$archive" ] && err "'$archive' is a symlink" e "$archive" f missing && err "'$archive' missing" - archivename="`basename "$archive"`" || err "Can't get '$archive' name" + archivename="$(basename "$archive" || err "Can't get '$archive' name")" \ + || err [ -z "$archivename" ] && err "Can't determine archive name" case "$archivename" in @@ -73,7 +74,7 @@ check_target() [ "$board" = "${board#serprog_}" ] || return 1 boarddir="$cbcfgsdir/$board" - eval "`setcfg "$boarddir/target.cfg"`" + eval "$(setcfg "$boarddir/target.cfg")" chkvars tree && x_ ./mk -d coreboot "$tree" ifdtool="elf/coreboot/$tree/ifdtool" @@ -104,7 +105,7 @@ readkconfig() { x_ rm -f "$xbtmp/cbcfg" fx_ scankconfig x_ find "$boarddir/config" -type f - eval "`setcfg "$xbtmp/cbcfg" 1`" + eval "$(setcfg "$xbtmp/cbcfg" 1)" setvfile "$@" || return 1; : } diff --git a/include/lib.sh b/include/lib.sh index a2b93a97..1f8687fb 100644 --- a/include/lib.sh +++ b/include/lib.sh @@ -32,11 +32,11 @@ xbmk_sanitize_version() { [ -n "$version" ] || return 0; : - version="`printf "%s\n" "$version" | sed -e 's/\t//g'`" - version="`printf "%s\n" "$version" | sed -e 's/\ //g'`" - version="`printf "%s\n" "$version" | sed -e 's/\.\.//g'`" - version="`printf "%s\n" "$version" | sed -e 's/\.\///g'`" - version="`printf "%s\n" "$version" | sed -e 's/\//-/g'`" + version="$(printf "%s\n" "$version" | sed -e 's/\t//g')" + version="$(printf "%s\n" "$version" | sed -e 's/\ //g')" + version="$(printf "%s\n" "$version" | sed -e 's/\.\.//g')" + version="$(printf "%s\n" "$version" | sed -e 's/\.\///g')" + version="$(printf "%s\n" "$version" | sed -e 's/\//-/g')" version="${version#-}" [ -n "$version" ] || err "'version' empty after sanitization"; : @@ -103,8 +103,8 @@ findpath() { [ $# -gt 0 ] || err "findpath: No arguments provided" while [ $# -gt 0 ]; do - found="`readlink -f "$1" 2>/dev/null`" || return 1; : - [ -n "$found" ] || found="`realpath "$1" 2>/dev/null`" || \ + found="$(readlink -f "$1" 2>/dev/null)" || return 1; : + [ -n "$found" ] || found="$(realpath "$1" 2>/dev/null)" || \ return 1; : printf "%s\n" "$found" shift 1 @@ -113,7 +113,7 @@ findpath() pad_one_byte() { - paddedfile="`mktemp`" || err "mktemp pad_one_byte" + paddedfile="$(mktemp || err "mktemp pad_one_byte")" || err x_ cat "$1" config/data/coreboot/0 > "$paddedfile" || err "!pad $1"; : x_ mv "$paddedfile" "$1" } @@ -123,14 +123,14 @@ unpad_one_byte() xromsize="$(expr $(stat -c '%s' "$1") - 1)" || err "!int" [ $xromsize -lt 524288 ] && err "too small, $xromsize: $1" - unpaddedfile="`mktemp`" || err "mktemp unpad_one_byte" + unpaddedfile="$(mktemp || err "mktemp unpad_one_byte")" || err x_ dd if="$1" of="$unpaddedfile" bs=$xromsize count=1 x_ mv "$unpaddedfile" "$1" } fx_() { - fd="`mktemp || err "can't create tmpfile"`" || err + fd="$(mktemp || err "can't create tmpfile")" || err x_ rm -f "$fd" && x_ touch "$fd" xx="$1" && shift 1 "$@" 2>/dev/null | sort 1>"$fd" 2>/dev/null || err "FATAL: !sort fx_" diff --git a/include/mrc.sh b/include/mrc.sh index 775831f8..5cbf7148 100644 --- a/include/mrc.sh +++ b/include/mrc.sh @@ -4,7 +4,7 @@ # Modifications in this version are Copyright 2021,2023-2025 Leah Rowe. # Original copyright detailed in repo: https://review.coreboot.org/coreboot/ -eval "`setvars "" MRC_url MRC_url_bkup MRC_hash MRC_board SHELLBALL`" +eval "$(setvars "" MRC_url MRC_url_bkup MRC_hash MRC_board SHELLBALL)" extract_refcode() { diff --git a/include/release.sh b/include/release.sh index 2c94b00c..906cd7e0 100644 --- a/include/release.sh +++ b/include/release.sh @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-3.0-or-later # Copyright (c) 2023-2025 Leah Rowe <leah@libreboot.org> -eval "`setvars "" reldir reldest vdir rsrc relmode`" +eval "$(setvars "" reldir reldest vdir rsrc relmode)" release() { @@ -21,7 +21,7 @@ release() [ -e "$reldest" ] && \ err "already exists: \"$reldest\"" - vdir="`mktemp -d || err "can't make vdir"`" || err + vdir="$(mktemp -d || err "can't make vdir")" || err vdir="$vdir/$version" rsrc="$vdir/${relname}_src" diff --git a/include/rom.sh b/include/rom.sh index bd58f974..223a84f3 100644 --- a/include/rom.sh +++ b/include/rom.sh @@ -32,8 +32,8 @@ copyps1bios() mkpayload_grub() { - eval "`setvars "" grub_modules grub_install_modules`" - $dry eval "`setcfg "$grubdata/module/$tree"`" + eval "$(setvars "" grub_modules grub_install_modules)" + $dry eval "$(setcfg "$grubdata/module/$tree")" $dry x_ rm -f "$srcdir/grub.elf"; $dry \ x_ "$srcdir/grub-mkstandalone" --grub-mkimage="$srcdir/grub-mkimage" \ -O i386-coreboot -o "$srcdir/grub.elf" -d "${srcdir}/grub-core/" \ @@ -256,7 +256,7 @@ cprom() newrom="${newrom%.rom}_${tmpnew%.gkb}.rom" irom="$tmprom" - [ $# -lt 1 ] || irom="`mktemp || err "!mk irom, $(echo "$@")"`" || err + [ $# -lt 1 ] || irom="$(mktemp || err "!mk irom, $(echo "$@")")" || err [ $# -gt 0 ] && x_ cp "$tmprom" "$irom" && cpcmd="mv" [ $# -gt 0 ] && [ "${1%.gkb}" != "$1" ] && \ diff --git a/include/tree.sh b/include/tree.sh index e5030064..9d9cc181 100644 --- a/include/tree.sh +++ b/include/tree.sh @@ -3,11 +3,11 @@ # Copyright (c) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com> # Copyright (c) 2023-2025 Leah Rowe <leah@libreboot.org> -eval "`setvars "" xarch srcdir premake gnatdir xlang mode makeargs elfdir cmd \ +eval "$(setvars "" xarch srcdir premake gnatdir tree mode makeargs elfdir cmd \ project target target_dir targets xtree _f release bootstrapargs mkhelper \ autoconfargs listfile autogenargs btype rev build_depend gccdir cmakedir \ defconfig postmake mkhelpercfg dry dest_dir mdir cleanargs gccver gccfull \ - gnatver gnatfull do_make badhash badtghash tree`" + gnatver gnatfull do_make badhash badtghash xlang)" trees() { @@ -128,16 +128,16 @@ handle_defconfig() configure_project() { - eval "`setvars "" cleanargs build_depend autoconfargs xtree postmake \ + eval "$(setvars "" cleanargs build_depend autoconfargs xtree postmake \ makeargs btype mkhelper bootstrapargs premake release xlang xarch \ - badhash badtghash`" + badhash badtghash)" _tcfg="$1/target.cfg" [ -f "$_tcfg" ] || btype="auto" - e "$datadir/mkhelper.cfg" f && eval "`setcfg "$datadir/mkhelper.cfg"`" + e "$datadir/mkhelper.cfg" f && eval "$(setcfg "$datadir/mkhelper.cfg")" while e "$_tcfg" f || [ "$cmd" != "build_project" ]; do - eval "`setvars "" rev tree`" - eval "`setcfg "$_tcfg"`" + eval "$(setvars "" rev tree)" + eval "$(setcfg "$_tcfg")" printf "Loading %s config: %s\n" "$project" "$_tcfg" [ "$_f" = "-d" ] && build_depend="" # dry run @@ -191,7 +191,7 @@ delete_old_project_files() project_up_to_date() { - eval "`setvars "" old_hash hash`" + eval "$(setvars "" old_hash hash)" hashdir="$1" hashname="$2" badhashvar="$3" @@ -252,7 +252,7 @@ check_gnu_path() { command -v "$1" 1>/dev/null || err "Host '$1' unavailable" - eval "`setvars "" gccver gccfull gnatver gnatfull gccdir gnatdir`" + eval "$(setvars "" gccver gccfull gnatver gnatfull gccdir gnatdir)" x_ gnu_setver "$1" "$1" || err "Command '$1' unavailable." gnu_setver "$2" "$2" || : @@ -281,7 +281,7 @@ check_gnu_path() gnu_setver() { eval "$2 --version 1>/dev/null 2>/dev/null || return 1" - eval "$1ver=\"`"$2" --version 2>/dev/null | head -n1`\"" + eval "$1ver=\"$("$2" --version 2>/dev/null | head -n1)\"" eval "$1ver=\"\${$1ver##* }\"" eval "$1full=\"\$$1ver\"" eval "$1ver=\"\${$1ver%%.*}\""; : diff --git a/include/vendor.sh b/include/vendor.sh index 6e379236..b4e89616 100644 --- a/include/vendor.sh +++ b/include/vendor.sh @@ -33,7 +33,7 @@ cvxbmk="CONFIG_ME_BIN_PATH CONFIG_SMSC_SCH5545_EC_FW_FILE CONFIG_FSP_FULL_FD \ CONFIG_IFD_BIN_PATH CONFIG_MRC_FILE CONFIG_FSP_M_CBFS" # lbmk-specific extensions; mostly used for downloading vendor files -eval "`setvars "" has_hashes EC_hash DL_hash DL_url_bkup MRC_refcode_gbe vcfg \ +eval "$(setvars "" has_hashes EC_hash DL_hash _pre_dest MRC_refcode_gbe vcfg \ E6400_VGA_DL_hash E6400_VGA_DL_url E6400_VGA_DL_url_bkup E6400_VGA_offset \ E6400_VGA_romname SCH5545EC_DL_url_bkup SCH5545EC_DL_hash _dest mecleaner \ kbc1126_ec_dump MRC_refcode_cbtree _dl SCH5545EC_DL_url EC_url rom DL_url \ @@ -41,7 +41,7 @@ eval "`setvars "" has_hashes EC_hash DL_hash DL_url_bkup MRC_refcode_gbe vcfg \ ME11version ME11sku ME11pch _me _metmp mfs TBFW_url_bkup TBFW_url cbdir \ TBFW_hash TBFW_size hashfile EC_url_bkup FSPM_bin_hash FSPS_bin_hash \ EC_FW1_hash EC_FW2_hash ME_bin_hash MRC_bin_hash REF_bin_hash _dl_bin \ - SCH5545EC_bin_hash TBFW_bin_hash E6400_VGA_bin_hash _pre_dest`" + SCH5545EC_bin_hash TBFW_bin_hash E6400_VGA_bin_hash DL_url_bkup)" download() { @@ -272,7 +272,7 @@ setvfile() getvfile() { - eval "`setcfg "config/vendor/$vcfg/pkg.cfg" 1`" + eval "$(setcfg "config/vendor/$vcfg/pkg.cfg" 1)" bootstrap && [ $# -gt 0 ] && getfiles && return 0 # download fx_ prep x_ find "$tmpromdir" -maxdepth 1 -type f -name "*.rom" ( check_vendor_hashes ) || err "$archive: Can't verify hashes"; : |