#!/bin/sh -efu

[ -n "$*" ] || exit 0

. girar-hooks-sh-functions

PROG=girar-post-update

case "$(git config girar.repack |tr '[:upper:]' '[:lower:]')" in
	false|no|off) ;;
	*)
	echo -n 'Repacking repository... '
	git prune
	git repack -a -d
	echo done
	;;
esac

if [ -d "$GIT_DIR/refs/heads" ]; then
	echo -n 'Updating committer date cache... '
	f="$GIT_DIR/recent_committer"
	git for-each-ref "--format=%(committer)" --sort=-committerdate --count=1 refs/heads \
		>"$f.new" && mv "$f.new" "$f"
	s="$(sed -n 's/.* \([1-9][0-9]\{9,\}\) [+-][0-9]\+$/\1/p' "$f")"
	if [ -n "$s" ]; then
		TZ=UTC touch --date="1970-01-01 $s seconds" -- "$f"
	else
		rm -f -- "$f"
	fi
	echo done
fi

girar-update-packages-list "$git_dir"
