#!/bin/sh
set -euC
# Distros (or upstream git, I'm not sure) make it very annoying to actually use
# the shipped `diff-highlight`. The following things vary depending on distro
# and version:
# - Where it is located
# - If it has a file extension
# - Whether it's executable
# - Whether has a shebang
# Therefore, we are left with this shim which does its best to actually run the
# thing.
for file in \
'/usr/share/doc/git/contrib/diff-highlight/diff-highlight'* \
'/usr/share/git-core/contrib/diff-highlight'* \
'/usr/share/git/diff-highlight/diff-highlight'*
do
# Does it exist?
[ -r "$file" ] || continue
# Is it executable?
[ -x "$file" ] && exec "$file" || true
# Does it have a shebang?
interp="$(sed -n '1s/^#!//p' "$file")"
[ "$interp" ] && exec $interp "$file" "$@" || true
# Does it have a file extension which matches a command?
ext="${file##*.}"
[ "$(command -v "$ext")" ] && exec "$ext" "$file" "$@" || true
done
# Fallback.
exec cat