aboutsummaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorAndrew Robbins <contact@andrewrobbins.info>2019-04-23 22:08:02 -0400
committerAndrew Robbins <contact@andrewrobbins.info>2019-04-23 22:08:02 -0400
commit28725e6cbcd9adba3b1e07d1862fa3735b18b84d (patch)
tree2d0f4b4f3349cd038bfe46c90ec842df2f1e806b /libs
parent8d3cd741781cab0d936814170df70f637bfd48b7 (diff)
downloadlibrebootfr-28725e6cbcd9adba3b1e07d1862fa3735b18b84d.tar.gz
librebootfr-28725e6cbcd9adba3b1e07d1862fa3735b18b84d.zip
Respect blobs-ignore when removing blobs
Diffstat (limited to 'libs')
-rwxr-xr-xlibs/git10
-rwxr-xr-xlibs/project16
2 files changed, 18 insertions, 8 deletions
diff --git a/libs/git b/libs/git
index b5b2ffdb..429d4783 100755
--- a/libs/git
+++ b/libs/git
@@ -361,18 +361,12 @@ git_project_prepare_blobs() {
shift
local repository_path=$(git_project_repository_path "$repository")
- local blobs_path=$(project_blobs_path "$project" "$@")
local blob
- if ! [[ -f "$blobs_path" ]]
- then
- return
- fi
-
- while read blob
+ while read -r blob
do
git_remove "$repository_path" "$blob"
- done < "$blobs_path"
+ done < <(project_blobs "$project" "$@")
if ! git_diff_staged_check "$repository_path"
then
diff --git a/libs/project b/libs/project
index dfb745a0..c830e1ee 100755
--- a/libs/project
+++ b/libs/project
@@ -535,6 +535,22 @@ project_sources_prepare_patch() {
done
}
+project_blobs() {
+ local project=$1
+ shift
+
+ local blobs_path=$(project_blobs_path "$project" "$@")
+ local blobs_ignore_path=$(project_blobs_ignore_path "$project" "$@")
+
+ if [[ -n $blobs_path ]]; then
+ if [[ -n $blobs_ignore_path ]]; then
+ comm -23 <(sort "$blobs_path") <(sort "$blobs_ignore_path")
+ else
+ cat "$blobs_path"
+ fi
+ fi
+}
+
project_blobs_path() {
local project=$1
shift