#!/bin/bash set -e cleanup() { rm -r "$TEMPDIR" } die() { echo "$1" 1>&2 cleanup exit 1 } DELTA="${1:-./target/release/delta} --no-gitconfig --navigate" # Trick delta into thinking that its pager is less, when really it is cat. unset DELTA_PAGER TEMPDIR="$(mktemp -d)" export PAGER="$TEMPDIR/less" cat >"$PAGER" <<-EOF #!/bin/sh cat EOF chmod 755 $PAGER test_delta_less_hist_file_created () { DELTA_HIST_FILE="${XDG_DATA_HOME:-$HOME/.local/share}/delta/lesshst" rm -f ~/.lesshst "$DELTA_HIST_FILE" [ -e "$DELTA_HIST_FILE" ] && die "Expected \"$DELTA_HIST_FILE\" not to exist" if [[ "$OSTYPE" = darwin* ]]; then # Trick git and delta into invoking their pager child processes, despite # output not being a tty. script -q /dev/null git -c pager.log="$DELTA" log -p HEAD~2...HEAD > /dev/null else git -c pager.log="$DELTA" log -p HEAD~2...HEAD fi [ -e "$DELTA_HIST_FILE" ] || die "Expected \"$DELTA_HIST_FILE\" to exist" } # Basic test test_delta_less_hist_file_created # Test it works with a custom LESSHISTFILE export LESSHISTFILE=$TEMPDIR/delta.lesshst test_delta_less_hist_file_created # Test histfile sections other than `.search` at the end of the file (#1) cat >$LESSHISTFILE <<-EOF .shell "pwd "ls -Al ../data/ EOF test_delta_less_hist_file_created # Test histfile sections other than `.search` at the end of the file (#2) cat >>$LESSHISTFILE <<-EOF .mark m a 1 7740 /etc/gitconfig m b 1 4221 /etc/profile EOF test_delta_less_hist_file_created # Cleanup cleanup