1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
// Copyright © 2023 xtasks. All rights reserved.
// SPDX-License-Identifier: Apache-2.0 OR MIT
//!
//! # `XTasks`
//!
//! [][00]
//!
//! ## Essential tools and tasks for Rust projects using the xtask pattern, simplifying common build and development workflows.
//!
//! [](https://crates.io/crates/xtasks "Crates.io")
//! [](https://lib.rs/crates/xtasks "Lib.rs")
//! [](https://opensource.org/license/apache-2-0/ "MIT or Apache License, Version 2.0")
//! [](https://www.rust-lang.org "Rust")
//!
//! `xtasks` is a comprehensive Rust library designed to facilitate common operations and tasks
//! in projects that adhere to the `xtask` pattern. This pattern is prevalent in the Rust ecosystem,
//! where it is used to define custom build, test, and deployment scripts within a project’s workspace.
//!
//! ## Overview
//!
//! The library aims to simplify and standardize the process of handling frequent project-related tasks,
//! offering a range of functionalities from basic file operations to intricate continuous integration
//! workflows and documentation generation. It provides both low-level building blocks and high-level
//! abstractions to cater to different use cases and levels of complexity.
//!
//! ## Modules
//!
//! - **`ops`**: This module contains fundamental building block operations such as file manipulation,
//! confirmation prompts, and command execution. It serves as the foundation for more complex tasks.
//!
//! - **`tasks`**: Here, you'll find higher-level functionalities and default implementations for common
//! project tasks, streamlining processes like code coverage analysis, CI/CD workflows, and more.
//!
//! - **`macros`**: This module offers a collection of convenient macros designed to expedite common
//! operations, reducing boilerplate and enhancing code readability.
//!
//! ## Features
//!
//! - **Simplicity**: Provides a user-friendly API, making it easy for developers to integrate `xtasks`
//! into their projects and start automating their workflows.
//!
//! - **Extensibility**: Designed with extensibility in mind, allowing developers to easily add new tasks
//! and customize existing ones to meet the unique needs of their projects.
//!
//! - **Robustness**: Incorporates thorough error handling and validation, ensuring that tasks are executed
//! reliably and any issues are promptly reported.
//!
//! - **Integration**: Seamlessly integrates with existing Rust tooling and conventions, ensuring a smooth
//! development experience.
//!
//! ## Usage
//!
//! To integrate `xtasks` into your project, add it as a dependency in your `Cargo.toml` file. Once added,
//! you can leverage the various functionalities and tasks provided by the library. Here’s an example on
//! how to use a function from the `ops` module:
//!
//! ```rust
//! use xtasks::ops::clean_files;
//!
//! # fn run() -> anyhow::Result<()> {
//! clean_files("target/debug/*.tmp")?;
//! # Ok(())
//! # }
//! # run().unwrap();
//! ```
//!
//! ## Contributing
//!
//! Contributions to `xtasks` are warmly welcomed. Whether it’s enhancing existing features, fixing bugs,
//! or implementing new functionalities, your input is valuable. Please ensure that all contributions are
//! accompanied by comprehensive documentation and tests, adhering to the project’s coding standards.
//! Please see [CONTRIBUTING.md][03] for details on how to contribute.
//!
//! ## License
//!
//! `xtasks` is distributed under the terms of both the MIT license and the Apache License (Version 2.0),
//! providing flexibility and ensuring open-source readiness.
//!
//! - [Apache License, Version 2.0][04]
//! - [MIT license][05]
//!
//! Enjoy automating your workflows with `xtasks`!
//!
//! [00]: https://xtasks.pro "XTasks"
//! [01]: https://github.github.com/gfm/ "GitHub Flavoured Markdown"
//! [02]: https://www.rust-lang.org/ "Rust"
//! [03]: https://xtasks.pro/contribute/index.html "Contribute to XTasks"
//! [04]: https://opensource.org/license/apache-2-0/ "Apache License, Version 2.0"
//! [05]: http://opensource.org/licenses/MIT "MIT license"
/// The `macros` module offers a collection of convenient macros designed to expedite common operations,
/// reducing boilerplate and enhancing code readability.
/// The `ops` module contains fundamental building block operations such as file manipulation,
/// confirmation prompts, and command execution. It serves as the foundation for more complex tasks.
/// The `tasks` module contains higher-level functionalities and default implementations for common
/// project tasks, streamlining processes like code coverage analysis, CI/CD workflows, and more.