Autohook is a very, very small Git hook manager with focus on automation.
It consists of one script which acts as the entry point for all the hooks, and which runs scripts based on symlinks in appropriate directories.
Let's say you have a script to remove
.pyc files that you want to run after every
git checkout and before every
git commit, and another script that runs your test suite that you want to run before every
Here's the overview of steps:
- Run it with
- Put your scripts in
- Make sure said scripts are executable (e.g.,
chmod +x hooks/scripts/delete-pyc-files, etc.).
- Make directories for your hook types (e.g.,
mkdir -p hooks/post-checkout hooks/pre-commit).
- Symlink your scripts to the correct directories, using numbers in symlink names to enforce execution order (e.g.,
ln -s hooks/scripts/delete-pyc-files.sh hooks/post-checkout/01-delete-pyc-files, etc.).
The result should be a tree that looks something like this:
repo_root/ ├── hooks/ │ ├── autohook.sh │ ├── post-checkout/ │ │ └── 01-delete-pyc-files # symlink to hooks/scripts/delete-pyc-files.sh │ ├── pre-commit/ │ │ ├── 01-delete-pyc-files # symlink to hooks/scripts/delete-pyc-files.sh │ │ └── 02-run-tests # symlink to hooks/scripts/run-tests.sh │ └── scripts/ │ ├── delete-pyc-files.sh │ └── run-tests.sh ├── other_dirs/ └── other_files
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
This software is licensed under the MIT License. Please see the included
LICENSE.txt for details.