From 9a5274f0ddf4639b9b19ab7f8a45d40e4795a9c2 Mon Sep 17 00:00:00 2001 From: Joshua Potter Date: Sun, 3 Dec 2023 14:31:36 -0700 Subject: [PATCH] Use more robust pre-commit. --- .githooks/pre-commit | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/.githooks/pre-commit b/.githooks/pre-commit index ffc73b0..a6b2371 100755 --- a/.githooks/pre-commit +++ b/.githooks/pre-commit @@ -1,12 +1,21 @@ #!/usr/bin/env bash set -e -FORMAT_FILES=$( - git --no-pager diff --name-status --no-color --cached | \ - awk '$1 != "D" && $2 ~ /\.py$/ {print $NF}' +STAGED=$( + git --no-pager diff --name-only --no-color --cached --diff-filter=d | + # Remove quotations used to surrounding filenames with special characters. + sed -e "s/^\"//" -e "s/\"$//g" ) -if [ -n "$FORMAT_FILES" ]; then - black --quiet "$FORMAT_FILES" - git add "$FORMAT_FILES" +TARGETS=() +while IFS= read -r FILENAME +do + if [[ "$FILENAME" =~ .*\.py ]]; then + TARGETS+=("${FILENAME}") + fi +done <<< "$STAGED" + +if (( ${#TARGETS[@]} )); then + black --quiet "${TARGETS[@]}" + git add "${TARGETS[@]}" fi