diff options
author | Leah Rowe <leah@libreboot.org> | 2024-07-28 13:30:25 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2024-07-28 13:35:31 +0100 |
commit | 59894ed555ecccf0346a7942e208171a21412d9b (patch) | |
tree | 46f4cc65d65a2c6240876ba724cee521a2fe2992 | |
parent | 7fa6052de036f81b54a93bf2f707f563205f176b (diff) |
lib.sh: new function mk() to handle trees in bulk
single-tree projects cannot be handled in bulk, e.g.
./mk -f project1 project2 project3
that is still the case, from the shell, but internally
it is now possible:
mk -f project1 project2 project3
mk() is a function that simply handles the given flag,
and all projects specified.
it does not handle cases without argument, for example
you cannot do:
mk -f
arguments must be provided. it can be used internally,
to simplify cases where multiple single-tree projects
must be handled, but *also* allows multi-tree projects
to be specified, without being able to actually handle
trees within that multi-tree project; so for example,
you can only specify coreboot, and then it would run
on every coreboot tree.
Signed-off-by: Leah Rowe <leah@libreboot.org>
-rwxr-xr-x | build | 12 | ||||
-rw-r--r-- | include/lib.sh | 8 | ||||
-rw-r--r-- | include/vendor.sh | 4 | ||||
-rwxr-xr-x | script/trees | 4 |
4 files changed, 14 insertions, 14 deletions
@@ -36,11 +36,9 @@ main() inject) shift 1; vendor_inject $@ ;; download) shift 1; vendor_download $@ ;; roms) - if [ $# -gt 1 ] && [ "$2" = "serprog" ]; then - x_ ./mk -b stm32-vserprog - x_ ./mk -b pico-serprog; return 0 - fi; shift 1 - x_ ./mk -b coreboot $@ ;; + [ $# -gt 1 ] && [ "$2" = "serprog" ] && \ + mk -b stm32-vserprog pico-serprog && return 0 + shift 1; x_ ./mk -b coreboot $@ ;; *) [ -f "$spath" ] || $err "bad command" $shcmd; "$spath" $@ || $err "excmd: $spath $(echo "$@")" ;; @@ -110,9 +108,7 @@ build_release() touch "$srcdir/lock" || $err "can't make lock file in $srcdir/" ( cd "$srcdir" || $err "$vdir: 2 !cd \"$srcdir\"" - ./mk -b coreboot || $err "$vdir: roms-all" - ./mk -b pico-serprog || $err "$vdir: rp2040" - ./mk -b stm32-vserprog || $err "$vdir: stm32" + mk -b coreboot pico-serprog stm32-vserprog x_ mv bin ../roms ) || $err "can't build rom images" diff --git a/include/lib.sh b/include/lib.sh index 586ecde1..2c9cd0d4 100644 --- a/include/lib.sh +++ b/include/lib.sh @@ -212,3 +212,11 @@ cbfs() lzma="-c lzma" && [ $# -gt 3 ] && lzma="-t raw" x_ "$cbfstool" "$1" $ccmd -f "$2" -n "$3" $lzma } + +mk() +{ + mk_flag="$1" || $err "No argument given" + shift 1 && for mk_arg in $@; do + ./mk $mk_flag $mk_arg || $err "./mk $mk_flag $mk_arg"; : + done; : +} diff --git a/include/vendor.sh b/include/vendor.sh index a6e82271..ea1d4f0a 100644 --- a/include/vendor.sh +++ b/include/vendor.sh @@ -48,9 +48,7 @@ readkconfig() bootstrap() { x_ ./mk -f coreboot ${cbdir##*/} - for d in uefitool biosutilities bios_extract; do - x_ ./mk -b "$d" - done + mk -b uefitool biosutilities bios_extract [ -d "${kbc1126_ec_dump%/*}" ] && x_ make -C "$cbdir/util/kbc1126" [ -n "$MRC_refcode_cbtree" ] && \ cbfstoolref="elf/cbfstool/$MRC_refcode_cbtree/cbfstool" && \ diff --git a/script/trees b/script/trees index 227b2216..01df28a0 100755 --- a/script/trees +++ b/script/trees @@ -36,9 +36,7 @@ main() project="${OPTARG#src/}"; shift 2 done [ -z "$_f" ] && $err "missing flag (-m/-u/-b/-c/-x/-f/-s/-l/-n)" - [ -z "$project" ] && for p in $(ls -1 config/git); do - ./mk $_f "$p" || $err "!./mk $_f $p"; : - done && return 1 + [ -z "$project" ] && mk $_f $(ls -1 config/git) && return 1 [ -f "config/git/$project/pkg.cfg" ] || $err "'$project' not defined" |