diff options
author | Leah Rowe <leah@libreboot.org> | 2025-10-04 05:23:47 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2025-10-04 05:23:47 +0100 |
commit | 7f8d85140fd229e97e539ca463fbd94545997fd6 (patch) | |
tree | 88528dba20c0c08fcb2aa0e84fc4d9be28d6febf /include | |
parent | 0a74cc8ec6038492f64074e18cc10ba7ab31ac94 (diff) |
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>
Diffstat (limited to 'include')
-rw-r--r-- | include/get.sh | 10 | ||||
-rw-r--r-- | include/init.sh | 3 | ||||
-rw-r--r-- | include/inject.sh | 12 | ||||
-rw-r--r-- | include/lib.sh | 10 | ||||
-rw-r--r-- | include/rom.sh | 7 | ||||
-rw-r--r-- | include/tree.sh | 7 | ||||
-rw-r--r-- | include/vendor.sh | 7 |
7 files changed, 37 insertions, 19 deletions
diff --git a/include/get.sh b/include/get.sh index db61958b..5cc65c2b 100644 --- a/include/get.sh +++ b/include/get.sh @@ -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" diff --git a/include/init.sh b/include/init.sh index 31d2b533..90d7de80 100644 --- a/include/init.sh +++ b/include/init.sh @@ -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 diff --git a/include/inject.sh b/include/inject.sh index ac5739c6..9f30b0a0 100644 --- a/include/inject.sh +++ b/include/inject.sh @@ -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 diff --git a/include/lib.sh b/include/lib.sh index 11f66107..833f284d 100644 --- a/include/lib.sh +++ b/include/lib.sh @@ -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 diff --git a/include/rom.sh b/include/rom.sh index 0edd5e89..987ead6a 100644 --- a/include/rom.sh +++ b/include/rom.sh @@ -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" diff --git a/include/tree.sh b/include/tree.sh index 98442e5c..80815465 100644 --- a/include/tree.sh +++ b/include/tree.sh @@ -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 diff --git a/include/vendor.sh b/include/vendor.sh index 2b108f7b..3ed16d8e 100644 --- a/include/vendor.sh +++ b/include/vendor.sh @@ -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 |