8 unstable releases (3 breaking)
0.4.2 | May 4, 2023 |
---|---|
0.4.1 | Dec 25, 2022 |
0.3.0 | Nov 29, 2022 |
0.2.2 | Nov 11, 2022 |
0.1.0 | Aug 9, 2022 |
#772 in Development tools
8,675 downloads per month
Used in lintd-taskops
15KB
275 lines
xtaskops
This is a Rust library that has a few goodies for working with the xtask
concept.
Dependency
[dependencies]
xtaskops = "0.4.0"
For most recent version see crates.io
Usage
You should have the xtask
concept already set up for your project.
- To get started quickly, you can use this Rust CI starter
- To set up manually follow the repo here.
Available Tasks
Full workflow tasks for your daily development.
- bloat_deps Show biggest crates in release build
- bloat_time Show crate build times
- dev Run
cargo check
followed bycargo test
for every file change - ci Run typical CI tasks in series: fmt, clippy, and tests
- coverage Run coverage
- docs Run cargo docs in watch mode
- install Instal cargo tools
- powerset Perform a CI build with powerset of features
Here's an example for how to integrate the coverage task with clap
:
use xtaskops::tasks;
// assuming you use `clap`
let res = match matches.subcommand() {
Some(("coverage", sm)) => tasks::coverage(sm.is_present("dev")),
//..
Quick start
You can include everything from xtask
in your project. In your xtask/main.rs
:
fn main() -> Result<(), anyhow::Error> {
xtaskops::tasks::main()
}
Ops
Low level convenience operations, for file system operations, user input and more.
use xtaskops::ops::{remove_dir, create_dir_all, cmd};
remove_dir("target")?;
create_dir_all("target")?;
// cmd! is from the `duct` library
cmd!("cargo", "watch", "-s", "cargo doc --no-deps").run()?;
Ok(())
Running Tasks
Run:
$ cargo xtask coverage
Recommended: alias cargo xtask
to x
:
# in your zshrc/shell rcfile
alias x="cargo xtask"
Copyright
Copyright (c) 2022 @jondot. See LICENSE for further details.
Dependencies
~5–12MB
~139K SLoC