agama/rust/xtask/README.md
2024-11-11 15:27:18 +00:00

30 lines
1 KiB
Markdown

# Agama project tasks
This package implements a set of project tasks following the [xtask
pattern](https://github.com/matklad/cargo-xtask). This pattern allows writing the typical
maintenance tasks using Rust code.
## Defined tasks
- `completions`: generates shell completion snippets for Bash, Fish and Zsh.
- `manpages`: generates manpages for the command-line interface.
- `markdown`: generates a manual page for the command-line interface in Markdown format. Useful to
be included in our website.
- `openapi`: generates the OpenAPI specification for the HTTP API.
## Running a task
To run a task, just type `cargo xtask TASK` where `TASK` is the name of the task (check the [Defined
tasks](#defined-tasks) section).
```shell
cargo xtask manpages
```
Most of the artifacts are generated in an `out` directory. You can modify the target by setting the
`OUT_DIR` environment variable.
## Writing a new task
Tasks are defined using regular Rust code. Check the [main.rs](src/main.rs) file for further
information.