From 1ea8d09af262ddeed87acf5916cec42d9a002da1 Mon Sep 17 00:00:00 2001 From: Andrew Robbins Date: Wed, 31 May 2017 02:21:11 -0400 Subject: Patching now works. bucts can be patched & built. Modified the function git_project_patch_recursive (in libs/git) to enable patching with diff files, which uses the new function diff_patch_file located in libs/common. A generic action script for bucts is in projects/bucts/. Install/revision/target files are in projects/bucts/configs/. bucts' merge into the new build system should be nearly, if not already, complete. --- libs/common | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'libs/common') diff --git a/libs/common b/libs/common index a64a7b9b..8f1379ee 100755 --- a/libs/common +++ b/libs/common @@ -63,6 +63,23 @@ arguments_list() { done } +diff_patch_file() { + local repository_path="$1" + local patch_file_path="$2" + + local filename_in_diff="$(sed -rne 's/^-{3} {1}(.*)$/\1/p' <"${patch_file_path}")" + + local source_file_path + + if ! ( grep -E '^-{3}.*/' <"${patch_file_path}" >/dev/null 2>&1 ); then + source_file_path="${repository_path}/${filename_in_diff##\ }" + else + source_file_path="${repository_path}/${filename_in_diff##*/}" + fi + + patch "${source_file_path}" "${patch_file_path}" +} + path_wildcard_expand() { local path=$@ -- cgit v1.2.3-70-g09d2