# 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.