git: ea589ebd6615 - main - framework: add hook to detect whether new ports are hooked into the tree
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 13 Apr 2022 03:29:58 UTC
The branch main has been updated by tcberner: URL: https://cgit.FreeBSD.org/ports/commit/?id=ea589ebd66157b2116e5c547d2af8ed94d10d715 commit ea589ebd66157b2116e5c547d2af8ed94d10d715 Author: Tobias C. Berner <tcberner@FreeBSD.org> AuthorDate: 2022-01-24 19:53:11 +0000 Commit: Tobias C. Berner <tcberner@FreeBSD.org> CommitDate: 2022-04-13 03:29:33 +0000 framework: add hook to detect whether new ports are hooked into the tree This pre-commit hook looks for newly added files matching foo/bar/Makefile For these files, it is checking that a SUBDIR+=bar entry is present in foo/Makefile. Example run output: > mkdir -p graphics/test_port > touch graphics/test_port/Makefile > git add graphics/test_port/Makefile > git commit -m "graphics/test_port: not hooked into the build" [pre-commit] ERROR: Missing 'SUBDIR += test_port' in graphics/Makefile This should hopefully help reduce the number of index breakages. Differential Revision: https://reviews.freebsd.org/D34015 --- .hooks/pre-commit | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.hooks/pre-commit b/.hooks/pre-commit new file mode 100755 index 000000000000..fb43d4353256 --- /dev/null +++ b/.hooks/pre-commit @@ -0,0 +1,17 @@ +#!/bin/sh +# +# Check that ports are hooked into the build +# + +newish_makefiles=$(git diff --name-only --cached --diff-filter=ACR | grep -E '^[^/]+/[^/]+/Makefile$') +if [ $? -eq 0 ] ; then + for newish_makefile in ${newish_makefiles} ; do + category=$(echo "${newish_makefile}" | awk -F '/' '{print $1}') + port=$(echo "${newish_makefile}" | awk -F '/' '{print $2}') + grep -q -E "^[[:space:]]+SUBDIR[[:space:]]\+=[[:space:]]*${port}\$" ${category}/Makefile + if [ $? -ne 0 ] ; then + echo "[pre-commit] ERROR: Missing 'SUBDIR += ${port}' in ${category}/Makefile" + exit 1 + fi + done +fi