dotfiles/_home/private_dot_local/bin/executable_git-l

36 lines
1001 B
Bash

#! /usr/bin/env bash
# Default is ~2 which will translate to '<default>~2'
# '<default>' and '<deafult>~1' mean pretty much the same
# '<default>~2' is one commit before it.
arg_one="${1:-}"
if [[ -z "$arg_one" ]]; then
if (git show main~2 --quiet --online 2>&1) >/dev/null; then
arg_one="~2"
elif (git show main~1 --quiet --online 2>&1) >/dev/null; then
arg_one="~1"
else
arg_one="+"
fi
fi
if [[ "$arg_one" == '+' ]]; then
[[ "${LINES-0}" -ne 0 ]] || LINES="$(tput lines)"
arg_one="-$(( (LINES-1)/3 ))"
elif [[ "$arg_one" =~ ^\.?~ ]]; then
arg_one="$(git default)${arg_one#\.}.."
fi
git_args=(
"--abbrev-commit" "--decorate" "--graph"
"--format=%C(yellow)%h%C(reset) %C(dim cyan)[%><(14)%ar] %C(reset)%C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(auto)%d%C(reset) "
"$arg_one" "${@:2}"
)
if [ "$1" == "---" ]; then
git_args=("${@:2}")
fi
#ANSI_Grey "${git_args[*]}" && echo ''
command git log "${git_args[@]}"
printf "\n"