bin/git-fuzz: handle missing diffFilter

This commit is contained in:
xeruf 2022-06-27 11:33:39 +02:00
parent db1e39b9e8
commit f6055fd6c3
1 changed files with 3 additions and 3 deletions

View File

@ -1,18 +1,18 @@
#!/bin/sh -e
#!/bin/sh
# Create a commit or stage files via fzf selection
# If the first arg is "add", files are staged rather than committed.
# All remaining args are passed to the last git command (add or commit).
# TODO fix broken prep-commit-msg hook when there is no unifying path
# TODO fix broken alt-enter not opening editor --bind='alt-enter:change-prompt(hi>)'
set -o pipefail
set -eo pipefail
fzfpipe() {
# Take nul-separated input from git-status short/porcelain
# and return a newline-separated list of selected files
cut -z -c2- |
git fzf-diff --read0 -d' ' --nth=2.. --bind="alt-enter:execute($EDITOR '$(git rev-parse --show-toplevel)/{2..}')" \
--preview="test {1} != \? && git diff --color HEAD --unified=4 -- {2..} | $(git config interactive.diffFilter) || find {2..} -type f | xargs -I% diff --recursive --color=always -u /dev/null %" |
--preview="test {1} != \? && git diff --color HEAD --unified=4 -- {2..} | $(git config interactive.diffFilter | grep . || echo $PAGER) || find {2..} -type f | xargs -I% diff --recursive --color=always -u /dev/null %" |
cut -c3-
}