6 releases (3 breaking)
|0.4.2||Aug 31, 2021|
|0.4.1||Aug 23, 2021|
|0.3.0||Aug 4, 2021|
|0.2.0||Aug 2, 2021|
|0.1.0||Aug 1, 2021|
#998 in Development tools
31 downloads per month
Run hooks only in a directory where files are changed. Useful for monorepo.
cargo install git-hooks-dispatch
Set up hooks you want as the following:
Hook file (e.g.
#!/bin/sh git-hooks-dispatch $(basename $0) -- "$@"
Make sure the file has permission to execute.
Then, in the child directories, you can set up hooks as they are in the project root directory.
#!/bin/sh npm run lint-staged
#!/bin/sh mvn antrun:run@ktlint-format
Hooks are executed recursively
In the below example, if
./foo/bar/B is changed,
pre-commit hooks are executed recursively in the following order:
. ├── .git │ └── hooks │ └── pre-commit └── foo ├── A ├── git-hooks │ └── pre-commit └── bar ├── B └── git-hooks └── pre-commit
Hooks dir name
git-hooks-dispatch searches a hook dir which name is
.hooks-dir by default. You can change it by
Manage hooks in your Git repository (recommended)
git config core.hooksPath git-hooks
RUST_LOG environment variable turns logging on.
RUST_LOG=debug git commit ...