diff options
Diffstat (limited to 'include')
| -rwxr-xr-x | include/git.sh | 21 | 
1 files changed, 21 insertions, 0 deletions
| diff --git a/include/git.sh b/include/git.sh index d737fd1c..91ccf179 100755 --- a/include/git.sh +++ b/include/git.sh @@ -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 | 
