aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlibs/common7
-rwxr-xr-xlibs/project13
2 files changed, 19 insertions, 1 deletions
diff --git a/libs/common b/libs/common
index 06b411e1..b1091e4f 100755
--- a/libs/common
+++ b/libs/common
@@ -117,6 +117,13 @@ diff_patch() {
patch -fd "$sources_path" -r - < "$patch_path"
}
+diff_patch_check() {
+ local sources_path=$1
+ local patch_path=$2
+
+ patch -sfd "$sources_path" --dry-run < "$patch_path" > /dev/null 2>&1
+}
+
path_wildcard_expand() {
local path=$@
diff --git a/libs/project b/libs/project
index 34b139a5..b130af17 100755
--- a/libs/project
+++ b/libs/project
@@ -584,7 +584,7 @@ project_sources_patch_recursive() {
fi
for patch in "$patches_path"/[!.]*.@(patch|diff); do
- diff_patch "$sources_path" "$patch" || return 1
+ project_sources_patch "$sources_path" "$patch" || return 1
done
if [[ -n $path && $path != . ]]; then
@@ -608,6 +608,17 @@ project_blobs() {
fi
}
+project_sources_patch() {
+ local sources_path=$1
+ local patch_path=$2
+
+ if diff_patch_check "$sources_path" "$patch_path"; then
+ diff_patch "$sources_path" "$patch_path"
+ else
+ return 1
+ fi
+}
+
project_blobs_path() {
local project=$1
shift