summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'autoepatch.sh')
-rwxr-xr-xautoepatch.sh21
1 files changed, 19 insertions, 2 deletions
diff --git a/autoepatch.sh b/autoepatch.sh
index 3b43d87..0f666e2 100755
--- a/autoepatch.sh
+++ b/autoepatch.sh
@@ -48,9 +48,26 @@ main() {
while read target; do
for patch in "${patchset}"/*.patch; do
- echo $patch
- try_patch "${target}" "${patch}" && break;
+ if try_patch "${target}" "${patch}"; then
+ PATCH_APPLIED="yes"
+ break
+ fi
done
+
+ # Check if the patchset requires us to fail if the
+ # patch is not applied, if there's no patch_required
+ # function, just skip over
+ type patch_required &>/dev/null || continue
+
+ if ! type patch_failed_msg &>/dev/null; then
+ patch_failed_msg() {
+ eerror "Failed patch ${patchset##*/}"
+ }
+ fi
+
+ if [[ -z ${PATCH_APPLIED} ]]; then
+ patch_required && patch_failed_msg && exit 1
+ fi
done <<<"${targets}"
exit 0