diff options
author | Swift Geek <swiftgeek@gmail.com> | 2019-03-19 02:35:51 +0000 |
---|---|---|
committer | Gogs <gogitservice@gmail.com> | 2019-03-19 02:35:51 +0000 |
commit | 834ad955ad7407b842546422c711034fe0c4ace2 (patch) | |
tree | 397ec0c98fa814f8105c1038dac2a984337ab4cc /libs/git | |
parent | 8d50c4b231ebc02f0f1b9586097a9e9a22cf906f (diff) | |
parent | 4a493108d1aefe3151096c3b22234d0c8cf893d9 (diff) | |
download | librebootfr-834ad955ad7407b842546422c711034fe0c4ace2.tar.gz librebootfr-834ad955ad7407b842546422c711034fe0c4ace2.zip |
Merge branch 'patch' of and_who/libreboot into master
Diffstat (limited to 'libs/git')
-rwxr-xr-x | libs/git | 63 |
1 files changed, 55 insertions, 8 deletions
@@ -169,7 +169,25 @@ git_commit() { ) } -git_patch() { +git_am() { + local repository_path=$1 + local branch=$2 + local patch=$3 + + ( + export GIT_COMMITTER_NAME=$GIT_NAME + export GIT_COMMITTER_EMAIL=$GIT_EMAIL + + cd "$repository_path" + git checkout "$branch" >/dev/null 2>&1 + + if git_apply_check "$repository_path" "$branch" "$patch"; then + git am "$patch" || git am --abort + fi + ) +} + +git_apply() { local repository_path=$1 local branch=$2 local patch=$3 @@ -179,12 +197,45 @@ git_patch() { export GIT_COMMITTER_EMAIL=$GIT_EMAIL cd "$repository_path" - git checkout "$branch" 2> /dev/null > /dev/null + git checkout "$branch" >/dev/null 2>&1 - git am "$patch" || git am --abort + if git_apply_check "$repository_path" "$branch" "$patch"; then + git apply --index "$patch" + fi ) } +git_apply_check() { + local repository_path=$1 + local branch=$2 + local patch=$3 + + ( + cd "$repository_path" + git checkout "$branch" >/dev/null 2>&1 + + git apply --check "$patch" + ) +} + +git_patch() { + local repository_path=$1 + local branch=$2 + local patch=$3 + + case $patch in + *.patch) + git_am "$repository_path" "$branch" "$patch" + ;; + *.diff) + git_apply "$repository_path" "$branch" "$patch" && + git_commit "$repository_path" "Applied ${patch##*/}" + ;; + *) + ;; + esac +} + git_revision() { local repository_path=$1 @@ -246,11 +297,7 @@ git_project_patch_recursive() { fi for patch in "$patches_path"/[!.]*.@(patch|diff); do - if [[ ${patch##*.} == patch ]]; then - git_patch "$repository_path" "$branch" "$patch" - else - diff_patch_file "$repository_path" "$patch" - fi + git_patch "$repository_path" "$branch" "$patch" done } |