mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-07-11 14:02:52 +02:00
git.sh: allow patching submodules
for single-tree project (e.g. flashprog): config/submodule/PROJECT/MODNAME/patches for multi-tree project (e.g. coreboot): config/submodule/PROJECT/TREE/MODNAME/patches MODNAME is e.g.: 3rdparty/vboot directory in coreboot: would become vboot (the submodule codepath is filtered to up to the final slash) another example: submodire src dir 3rdparty/foo/bar MODNAME would be "bar" Add whatever patches you like to a given submodule. An example patch is included in this commit. Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
@@ -93,6 +93,9 @@ git_prep()
|
||||
if [ "$project" != "coreboot" ] || [ $# -gt 2 ]; then
|
||||
[ ! -f "$tmpgit/.gitmodules" ] || git -C "$tmpgit" submodule \
|
||||
update --init --checkout || $err "git_prep $_loc: !submod"
|
||||
|
||||
patch_submodules
|
||||
|
||||
if [ "$project" = "coreboot" ] && [ -n "$xtree" ] && \
|
||||
[ "$xtree" != "$tree" ]; then
|
||||
(
|
||||
@@ -114,6 +117,24 @@ git_prep()
|
||||
x_ ./update project trees -f coreboot "$xtree"; return 0
|
||||
}
|
||||
|
||||
patch_submodules()
|
||||
{
|
||||
moddir="${PWD}/config/submodule/$project"
|
||||
[ -n "$tree" ] && moddir="$moddir/$tree"
|
||||
[ -d "$moddir" ] || return 0
|
||||
|
||||
git -C "$tmpgit" submodule status | awk '{print $2}' > \
|
||||
"$tmpdir/modules" || $err "$moddir: cannot list submodules"
|
||||
|
||||
while read -r modsrcdir; do
|
||||
modname="${modsrcdir##*/}"
|
||||
modpatchdir="$moddir/$modname/patches"
|
||||
[ -d "$modpatchdir" ] || continue
|
||||
|
||||
git_am_patches "$tmpgit/$modsrcdir" "$modpatchdir"
|
||||
done < "$tmpdir/modules"
|
||||
}
|
||||
|
||||
git_am_patches()
|
||||
{
|
||||
for _patch in "$2/"*; do
|
||||
|
||||
Reference in New Issue
Block a user