1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-19 00:13:33 +00:00

framework: add git-hook to check PORTEPOCH validity

- checks dropping of PORTEPOCH:
	[pre-commit] dropped PORTEPOCH 1 in net/kf5-kdav/Makefile

- checks it being non-decreasing:
	[pre-commit] PORTEPOCH decreasing from 2 to 1 in net-p2p/frost/Makefile

Reviewed By: rene, bapt
Differential Revision: https://reviews.freebsd.org/D35733
This commit is contained in:
Tobias C. Berner 2022-11-11 21:37:54 +01:00
parent cb22576845
commit 5ad46769a8

View File

@ -0,0 +1,27 @@
#!/bin/sh
#
# Check that PORTEPOCH is not being dropped, and is non-decreasing
#
check_epoch() {
local makefile="$1"
local old_epoch=$(git diff --cached -U0 "${makefile}" | grep '^\-PORTEPOCH' | grep -oE '[0-9]+')
local new_epoch=$(git diff --cached -U0 "${makefile}" | grep '^\+PORTEPOCH' | grep -oE '[0-9]+')
if [ -z "${new_epoch}" ] ; then
echo "[pre-commit] dropped PORTEPOCH ${old_epoch} in ${makefile}"
exit 1
fi
if [ -n "${old_epoch}" ] ; then
if [ ${new_epoch} -lt ${old_epoch} ] ; then
echo "[pre-commit] PORTEPOCH decreasing from ${old_epoch} to ${new_epoch} in ${makefile}"
exit 2
fi
fi
}
modified_makefiles=$(git diff --name-only --cached --diff-filter=M -GPORTEPOCH | grep -E '^[^/]+/[^/]+/Makefile$')
if [ $? -eq 0 ] ; then
for modified_makefile in ${modified_makefiles} ; do
check_epoch ${modified_makefile}
done
fi