#!/bin/sh
# Every commit names the Vikunja task it belongs to.
#
#   router: narrow the single-token rule (V-359)
#
# V- and not #, because Gitea autolinks #359 to a Gitea issue, which is a
# different tracker and a wrong link.
#
# Exempt: merges, reverts, fixup/squash, and the initial commit.

msg_file=$1
subject=$(sed -n '1p' "$msg_file")

case "$subject" in
	Merge\ *|Revert\ *|fixup!\ *|squash!\ *|amend!\ *) exit 0 ;;
esac

if [ -f "$(git rev-parse --git-dir)/MERGE_HEAD" ]; then
	exit 0
fi

if printf '%s' "$subject" | grep -qE '\(V-[0-9]+\)$'; then
	exit 0
fi

echo "commit-msg: subject must end with a Vikunja task ref." >&2
echo "  got:  $subject" >&2
echo "  want: router: narrow the single-token rule (V-359)" >&2
echo "  No task yet? Create one. Work without a task is work nobody can resume." >&2
exit 1
