summaryrefslogtreecommitdiff
path: root/include/git.sh
blob: 9a48023d3bf8c89eac053704e5f21bb0d76a25e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2023 Leah Rowe <leah@libreboot.org>

git_am_patches()
{
	sdir="${1}" # assumed to be absolute path
	patchdir="${2}" # ditto
	_fail="${3}"
	(
	cd "${sdir}" || \
	    "${_fail}" "apply_patches: !cd \"${sdir}\""
	for patch in "${patchdir}/"*; do
		[ -L "${patch}" ] && continue
		[ -f "${patch}" ] || continue
		if ! git am "${patch}"; then
			git am --abort || "${_fail}" "${sdir}: !git am --abort"
			"${_fail}" "!git am ${patch} -> ${sdir}"
		fi
	done
	)
	for patches in "${patchdir}/"*; do
		[ -L "${patches}" ] && continue
		[ ! -d "${patches}" ] || \
			git_am_patches "${sdir}" "${patches}" "${_fail}" || \
			    "${_fail}" "apply_patches: !${sdir}/ ${patches}/"
	done
}