A library to easily use git hooks from Dart
To start using Hanzo, add it to your dev_dependencies
and run pub get
To install hooks in your project, run:
$ pub run hanzo install
Now create a matching git hook dart file in ./tool
directory (create if needed).
Example:
// in ./tool/pre_commit.dart
main(List<String> arguments) =>
print("I'll run before a commit is made!");
// in ./tool/commit_msg.dart
main(List<String> arguments) =>
print("I'll run after commit message is entered!");
$ pub global activate hanzo
$ hanzo -i pre_commit -s
Option/Flag | abbreviation | description |
---|---|---|
--add-sample |
-s | If flag is passed it will create a sample Dart script. Defaults to false |
--install <hook_name> |
-i | Creates a bash script for the hook passed. Defaults to pre_commit script. Example: -i pre_commit |
--remove <hook_name> |
-r | Removes a bash script for the hook passed. Example: -r pre_commit . Defaults to all |
To remove all hooks in your project, run:
$ hanzo -r
Or if you want to remove a specific hook:
$ hanzo -r pre_commit
Git hooks are scripts that run automatically every time a particular event occurs in a Git repository. Hanzo supports all git hooks (https://git-scm.com/docs/githooks)
Git hook | Dart script name |
---|---|
applypatch-msg | applypatch_msg.dart |
commit-msg | commit_msg.dart |
post-applypatch | post_applypatch.dart |
post-checkout | post_checkout.dart |
post-commit | post_commit.dart |
post-merge | post_merge.dart |
post-receive | post_receive.dart |
post-rewrite | post_rewrite.dart |
post-update | post_update.dart |
pre-applypatch | pre_applypatch.dart |
pre-auto-gc | pre_auto_gc.dart |
pre-commit | pre_commit.dart |
pre-push | pre_push.dart |
pre-rebase | pre_rebase.dart |
pre-receive | pre_receive.dart |
prepare-commit-msg | prepare_commit_msg.dart |
push-to-checkout | push_to_checkout.dart |
update | update.dart |
Git params will be passed as arguments to the main function of the Dart script.
Please file feature requests and bugs at the issue tracker.