# 🌵 Cactus
[](https://hex.pm/packages/cactus)
[](https://hexdocs.pm/cactus/)
[](https://github.com/bwireman/cactus/blob/main/LICENSE)
[](https://gleam.run/news/v0.16-gleam-compiles-to-javascript/)
[](https://gleam.run)
A tool for managing git lifecycle hooks with ✨ gleam! Pre commit, Pre push and more!
# 🔽 Install
```sh
gleam add --dev cactus
```
#### 🌸 Javascript
Bun, Deno & Nodejs are _all_ supported!
# ▶️ Usage
**_FIRST_** configure hooks and then run
```sh
# initialize configured hooks
gleam run -m cactus
```
### ⚙️ Config
Optional settings that can be added to your project's `gleam.toml`
```toml
[cactus.pre-commit]
# list of actions for the hook
actions = [
{
# name of the command or binary to be run
# required
command = "format",
# is it a gleam subcommand, a binary or a module
# ["sub_command", "binary", "module"]
# default: module
kind = "sub_command",
# additional args to be passed to the command
# default: []
args = ["--check"]
},
]
[cactus.pre-push]
actions = [
{ command = "test", kind = "sub_command" },
{ command = "go_over", kind = "module", args=["--outdated"] },
]
```