summaryrefslogtreecommitdiff
path: root/script/update/project/repo
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2023-09-25 00:40:56 +0100
committerLeah Rowe <leah@libreboot.org>2023-09-25 00:51:03 +0100
commita7b767a47bdef371ee146afb052d0723736ea662 (patch)
tree0b5ec00bc4155217073e0b4a59412c06044a1606 /script/update/project/repo
parent7966f9111d9002d39903abd4b4a39ef1c9e10f54 (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-xscript/update/project/repo13
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
}