#!/bin/sh

CF=CREDITS-FILE
tip=

tree_search ()
{
	head=$1
	tree=$2
	for p in $(git rev-list --parents --max-count=1 $head 2>/dev/null)
	do
		test $tree = $(git rev-parse $p^{tree} 2>/dev/null) &&
		vn=$(git describe --abbrev=4 $p 2>/dev/null) &&
		case "$vn" in
		gitgui-[0-9]*) echo $p; break;;
		esac
	done
}

generate_credits ()
{
	tip=$1 &&
	rm -f "$2" &&
	git shortlog -n -s $tip | sed 's/: .*$//' >"$2" || exit
}

# Always use the tarball credits file if found, just
# in case we are somehow contained in a larger git
# repository that doesn't actually track our state.
# (At least one package manager is doing this.)
#
# We may be a subproject, so try looking for the merge
# commit that supplied this directory content if we are
# not at the toplevel.  We probably will always be the
# second parent in the commit, but we shouldn't rely on
# that fact.
#

credits_tmp=/var/tmp/gitgui-credits-$$
trap 'rm -f "$credits_tmp"' 0

orig="$credits_tmp"

if test -f credits
then
	orig=credits
elif prefix="$(git rev-parse --show-prefix 2>/dev/null)" &&
   test -n "$prefix" &&
   head=$(git rev-list --max-count=1 HEAD -- . 2>/dev/null) &&
   tree=$(git rev-parse --verify "HEAD:$prefix" 2>/dev/null) &&
   tip=$(tree_search $head $tree) &&
   test -n "$tip"
then
	generate_credits $tip "$orig" || exit
elif tip="$(git rev-parse --verify HEAD 2>/dev/null)" &&
   test -n "$tip"
then
	generate_credits $tip "$orig" || exit
else
	echo "error: Cannot locate authorship information." >&2
	exit 1
fi

if test -f "$orig" && cmp -s "$orig" "$CF"
then
	: noop
else
	rm -f "$CF" &&
	cat "$orig" >"$CF"
fi

