From 1c3296a63aa6ed905c8ac79fbf80d0c064a36140 Mon Sep 17 00:00:00 2001 From: Caleb Connolly <caleb@postmarketos.org> Date: Sun, 17 Nov 2024 00:41:37 +0100 Subject: [PATCH] githooks: ignore unstaged hunks of APKBUILD (MR 5807) It's possible that additional sources have been made to an APKBUILD which are unstaged, but if the hunks adding those sources haven't been staged either then it doesn't make sense to fail on this. Use git show to get only the staged hunks for the APKBUILD. Signed-off-by: Caleb Connolly <caleb@postmarketos.org> --- .githooks/pre-commit | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/.githooks/pre-commit b/.githooks/pre-commit index eec9b36dc16..8dd60c0f510 100755 --- a/.githooks/pre-commit +++ b/.githooks/pre-commit @@ -65,7 +65,7 @@ is_symlink() { # available in git tree and checksums are correct. check_local_sources() { local apkbuild="$1" - local startdir="${apkbuild%/*}" + local startdir="$2" local status=0 local checksum_act checksum_exp content filename line sources @@ -109,11 +109,21 @@ check_file_size() { fi } +cleanup() { + [ -f "$_staged" ] && rm "$_staged" +} + +trap cleanup EXIT for apkbuild in $(changed_files '**/APKBUILD'); do - check_local_sources "$apkbuild" + _staged="$(mktemp)" + git show ":$apkbuild" >"$_staged" + check_local_sources "$_staged" "${apkbuild%/*}" + cleanup done for path in $(changed_files); do check_file_size "$path" done + +trap - EXIT -- GitLab