Git hook utility for Rust codebases that lets you run any script for any git hook.
Functional, but still in Beta!
The best way to install rusty-hook
is to use cargo
:
cargo install rusty-hook
Or add it as a dev dependency in your Cargo.toml file:
[dev-dependencies]
rusty-hook = "0.4.1"
Run the init
command in any git directory to set it up:
rusty-hook init
This will ensure that all of the client side git hooks are available, and it will create a rusty-hook
configuration file if one does not already exist.
You define your desired git hook configuration in the rusty-hook
configuration file (a TOML file named .rusty-hook.toml
or rusty-hook.toml
).
Here's an example rusty-hook
configuration that leverages multiple git hooks, including the pre-commit and the pre-push hooks:
[hooks]
pre-commit = "cargo test"
pre-push = "cargo fmt -- --check"
post-commit = "echo yay"
[logging]
verbose = true
Under the [hooks]
table, you can add an entry for any and every git hook you want to run by adding a key using the name of the git hook, and then specify the command/script you want to run for that hook. Whenever that git hook is triggered, rusty-hook
will run your specified command!
Under the [logging]
table, you can control whether to log the output of running your specified hook commands. By default rusty-hook
will log the results of your hook script, but you can disable this behavior by setting the verbose
key to false
:
[logging]
verbose = false
There's a few other git hook utilities available on crates.io, but none of them quite suited our needs so we made rusty-hook!
All contributions are welcome and appreciated! Check out our Contributing Guidelines for more information about opening issues, developing, and more.