aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-04-19 07:54:47 -0500
committerCraig Jennings <c@cjennings.net>2026-04-19 07:54:47 -0500
commitc3b0057b4438ed3080b80fe0c8611683138c1bd5 (patch)
tree446c3f2bb8f2ac235d845aa5ea56cfbfbec4ff0c /Makefile
parente6a87bffca9d44ec180f7a17f6891de8f4bfccec (diff)
downloaddotemacs-c3b0057b4438ed3080b80fe0c8611683138c1bd5.tar.gz
dotemacs-c3b0057b4438ed3080b80fe0c8611683138c1bd5.zip
chore(hooks): add tracked pre-commit hook via githooks/
Portable setup: pre-commit lives in githooks/ (tracked), activated by `make install-hooks` which sets core.hooksPath. Survives fresh clones. The hook does two things on staged changes: - Scans added lines for common credential patterns (AWS keys, sk-* tokens, BEGIN PRIVATE KEY blocks, api_key/password literals) - Runs check-parens on staged .el files Bypass with `git commit --no-verify` for confirmed false positives.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile11
1 files changed, 10 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index d85a290b..a517c094 100644
--- a/Makefile
+++ b/Makefile
@@ -40,7 +40,7 @@ EMACS_TEST = $(EMACS_BATCH) -L $(TEST_DIR) -L $(MODULE_DIR)
.PHONY: help targets test test-all test-unit test-integration test-file test-name \
validate-parens validate-modules compile lint profile \
- clean clean-compiled clean-tests reset
+ clean clean-compiled clean-tests reset install-hooks
# Alias for help
targets: help
@@ -70,6 +70,7 @@ help:
@echo " make clean-compiled - Remove .elc/.eln files only"
@echo " make clean-tests - Remove test artifacts only"
@echo " make reset - Reset to first launch (DESTRUCTIVE!)"
+ @echo " make install-hooks - Activate tracked git hooks (githooks/)"
@echo ""
@echo "Examples:"
@echo " make test-file FILE=test-custom-buffer-file-copy-whole-buffer.el"
@@ -365,3 +366,11 @@ reset:
@find $(EMACS_HOME) -name "*.eln" -type f -delete
@find $(EMACS_HOME) -name "*.elc" -type f -delete
@echo "✓ Reset complete"
+
+install-hooks:
+ @echo "Activating tracked git hooks from githooks/..."
+ @git config core.hooksPath githooks
+ @chmod +x githooks/* 2>/dev/null || true
+ @echo "✓ core.hooksPath set to githooks/"
+ @echo " Active hooks:"
+ @ls -1 githooks/ 2>/dev/null | grep -v '\.md$$' | sed 's/^/ /'