diff options
author | Leah Rowe <leah@libreboot.org> | 2023-09-25 00:40:56 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2023-09-25 00:51:03 +0100 |
commit | a7b767a47bdef371ee146afb052d0723736ea662 (patch) | |
tree | 0b5ec00bc4155217073e0b4a59412c06044a1606 /script/update/project/repo | |
parent | 7966f9111d9002d39903abd4b4a39ef1c9e10f54 (diff) |
update/repos: concatenate multiple revision files
With this change, it's still possible to have a single
file at config/git/revisions, but this has been scrapped.
Instead, multiple files now exist under config/git/ with
the same modules declared, but the files are separated
logically. List of files under config/git:
* bios_extract
* biosutilities
* coreboot
* flashrom
* grub (gnulib also defined here)
* me_cleaner
* memtest86plus
* seabios
* serprog (multiple projects defined)
* u-boot
* uefitool
The rationale behind this change is simple: in the future,
we will stop relying on build systems within imported
projects for the import of git submodules. Instead, we
will handle them directly in lbmk.
Additionally, a Linux payload is planned for Libreboot, made
easier by the recent audit (script handle/make/config makes
it easy to integrate Linux, and handle cross-compilers for
userland utilities); a "linux" file under config/git/ could
also define rules for each project besides linux, such as
musl libc, busybox and other utilities.
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'script/update/project/repo')
-rwxr-xr-x | script/update/project/repo | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/script/update/project/repo b/script/update/project/repo index 9f0a9180..d951fb3b 100755 --- a/script/update/project/repo +++ b/script/update/project/repo @@ -36,6 +36,12 @@ main() read_config() { + revfile="$(mktemp -t gitrevisions.XXXXXXXXXX)" || \ + fail "read_config: Cannot initialise tmpfile" + + cat config/git/* > "${revfile}" || \ + fail "read_config: Cannot concatenate revision files" + awkstr=" /\{.*${name}.*}{/ {flag=1;next} /\}/{flag=0} flag { print }" while read -r line ; do set ${line} || fail "read_config: set line" @@ -52,8 +58,11 @@ read_config() depend="${depend} ${2} " ;; esac done << EOF - $(eval "awk '${awkstr}' config/git/revisions") + $(eval "awk \"${awkstr}\" \"${revfile}\"") EOF + + rm -f "${revfile}" || \ + fail "read_config: can't remove tmp revfile" } verify_config() @@ -115,7 +124,7 @@ usage() Usage: ./update project repo [name] Options: - name: Module name as specified in config/git/revisions + name: Module name as specified in files under config/git/ EOF } |