xbmk: remove the setcfg function

this allows me to remove several eval calls, and the
errors relating to configs can now show exactly which
function they occured in, allowing for easier debugging.

once again, eval should be used sparingly if at all.

Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
Leah Rowe
2025-10-04 05:23:47 +01:00
parent 0a74cc8ec6
commit 7f8d85140f
7 changed files with 37 additions and 19 deletions
+8 -2
View File
@@ -29,7 +29,9 @@ fetch_project()
{
xtree=""
eval "`setcfg "config/git/$project/pkg.cfg"`"
. "config/git/$project/pkg.cfg" || \
err "Can't read config 'config/git/$project/pkg.cfg'" \
"fetch_project" "@"
chkvars url bkup_url
@@ -90,7 +92,11 @@ fetch_submodule()
subcurl_bkup=""
st=""
eval "`setcfg "$mcfgdir/module.cfg" 0`"
if e "$mcfgdir/module.cfg" f missing; then
return 0
fi
. "$mcfgdir/module.cfg" || \
err "Can't read '$mcfgdir/module.cfg'" "fetch_submodules" "$@"
if [ -n "$subgit" ] || [ -n "$subgit_bkup" ]; then
st="$st git"
+2 -1
View File
@@ -56,7 +56,8 @@ xbmkpkg()
reinstall="$3"
fi
eval "`setcfg "config/dependencies/$2"`"
. "config/dependencies/$2" || \
err "Can't read 'config/dependencies/$2'" "xbmkpkg" "$@"
chkvars pkg_add pkglist
x_ $pkg_add $pkglist
+10 -2
View File
@@ -115,7 +115,9 @@ check_target()
boarddir="$cbcfgsdir/$board"
eval "`setcfg "$boarddir/target.cfg"`"
. "$boarddir/target.cfg" || \
err "Can't read '$boarddir/target.cfg'" "check_target" "$@"
chkvars tree
x_ ./mk -d coreboot "$tree"
@@ -160,7 +162,13 @@ readkconfig()
x_ rm -f "$xbtmp/cbcfg"
fx_ scankconfig x_ find "$boarddir/config" -type f
eval "`setcfg "$xbtmp/cbcfg" 1`"
if e "$xbtmp/cbcfg" f missing; then
return 1
fi
. "$xbtmp/cbcfg" || \
err "Can't read '$xbtmp/cbcfg'" "readkconfig" "$@"
if ! setvfile "$@"; then
return 1
-10
View File
@@ -107,16 +107,6 @@ setvars()
fi
}
setcfg()
{
if [ $# -gt 1 ]; then
printf "e \"%s\" f missing && return %s;\n" "$1" "$2"
else
printf "e \"%s\" f not && err \"Missing config '$1'\";\n" "$1"
fi
printf ". \"%s\" || err \"Could not read config '$1'\";\n" "$1"
}
chkvars()
{
while [ $# -gt 0 ]; do
+6 -1
View File
@@ -45,7 +45,12 @@ mkpayload_grub()
grub_modules=""
grub_install_modules=""
$dry eval "`setcfg "$grubdata/module/$tree"`"
if [ "$dry" = ":" ]; then
return 0
fi
. "$grubdata/module/$tree" || \
err "Can't read '$grubdata/module/$tree'" "mkpayload_grub" "$@"
$dry x_ rm -f "$srcdir/grub.elf"
+5 -2
View File
@@ -222,7 +222,9 @@ configure_project()
# globally initialise all variables for a source tree / target:
if e "$datadir/mkhelper.cfg" f; then
eval "`setcfg "$datadir/mkhelper.cfg"`"
. "$datadir/mkhelper.cfg" || \
err "Can't read '$datadir/mkhelper.cfg'" \
"configure_project" "$@"
fi
# override target/tree specific variables from per-target config:
@@ -241,7 +243,8 @@ configure_project()
rev=""
tree=""
eval "`setcfg "$_tcfg"`"
. "$_tcfg" || \
err "Can't read '$_tcfg'" "configure_project" "$@"
if [ "$_f" = "-d" ]; then
build_depend="" # dry run
+6 -1
View File
@@ -417,7 +417,12 @@ setvfile()
getvfile()
{
eval "`setcfg "config/vendor/$vcfg/pkg.cfg" 1`"
if e "config/vendor/$vcfg/pkg.cfg" f missing; then
return 1
fi
. "config/vendor/$vcfg/pkg.cfg" || \
err "Can't read 'config/vendor/$vcfg/pkg.cfg'" "getvfile" "$@"
bootstrap