summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2025-09-11 10:17:50 +0100
committerLeah Rowe <leah@libreboot.org>2025-09-11 10:29:59 +0100
commit4999a49de39667b3239fc2010d0e99c958b29417 (patch)
treedfa4897896de0bc0c93c5133052a566b5339c138 /include
parent5cfe54b06d74e6392fc7312c41b5ca299704f7ca (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>
Diffstat (limited to 'include')
-rw-r--r--include/get.sh14
-rw-r--r--include/init.sh25
-rw-r--r--include/inject.sh13
-rw-r--r--include/lib.sh20
-rw-r--r--include/mrc.sh2
-rw-r--r--include/release.sh4
-rw-r--r--include/rom.sh6
-rw-r--r--include/tree.sh20
-rw-r--r--include/vendor.sh6
9 files changed, 56 insertions, 54 deletions
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"; :