15 个版本 (8 个重大更新)
0.8.0 | 2023 年 9 月 24 日 |
---|---|
0.6.1 | 2022 年 12 月 3 日 |
0.6.0 | 2022 年 10 月 7 日 |
#210 在 编程语言
1,685 每月下载
180KB
3K SLoC
cli-xtask
一组 cargo-xtask 的实用函数和命令行界面。
此软件包提供了以下实用工具
cargo xtask dist
和相关子命令- 为您的 bin 软件包构建可分发 tar.gz 包。
cargo xtask lint
和相关子命令- 运行您的 bin/lib 软件包的 lint 检查。
- 与
rustdoc
、rustfmt
、clippy
、cargo-sync-rdme
、cargo-udeps
集成。
cargo xtask tidy
和相关子命令- 修复您的 bin/lib 软件包上的问题。
- 与
rustfmt
、clippy
、cargo-sync-rdme
集成。
cargoxtask 预发布
- 检查您的 bin/lib 软件包是否已准备好发布。
cargo xtask build
,clippy
,doc
,fmt
,test
- 运行带有对测试和持续集成有用的选项的 cargo 命令。
--all-workspaces
- 运行所有工作空间的 cargo 命令。--workspace
- 运行工作空间中所有包的 cargo 命令。--each-features
- 对每个启用的功能重复运行 cargo 命令。--exhaustive
- 与--all-workspaces --workspace --each-features
相同。
- 运行带有对测试和持续集成有用的选项的 cargo 命令。
cargoxtask docsrs
- 使用 docs.rs 的配置为你的 lib crate 构建文档。
cargoxtask exec
- 在所有工作空间的环境中运行命令。
用法
首先,根据 cargo-xtask 网站的说明 创建一个 xtask
crate。
然后,运行以下命令将 cli-xtask
添加到依赖项。
-
对于 bin crate
cargo add -p xtask cli-xtask --features main,bin-crate
如果你想要使用额外的工具,如
cargo-sync-rdme
和cargo-udeps
,请添加bin-crate-extra
功能。cargo add -p xtask cli-xtask --features main,bin-crate,bin-crate-extra
-
对于 lib crate
cargo add -p xtask cli-xtask --features main,lib-crate
如果你想要使用额外的工具,如
cargo-sync-rdme
和cargo-udeps
,请添加lib-crate-extra
功能。cargo add -p xtask cli-xtask --features main,lib-crate,lib-crate-extra
最后,按以下方式编辑 xtask/src/main.rs
use cli_xtask::{Result, Xtask};
fn main() -> Result<()> {
<Xtask>::main()
}
现在你可以使用 cargo xtask
自定义
如果你想要删除对你项目无用的子命令,你可以通过禁用相应的 cargo 功能来删除它们。有关更多信息,请参阅 功能标志部分。
如果你想要添加此 crate 中未包含的子命令,你可以通过创建一个新的数据结构来实现 Run
并实现 [clap::Subcommand
]。有关更多信息,请参阅 Xtask
的文档。
功能标志
通过使用 cli-xtask 的功能标志,你可以仅启用你需要的特性和命令。默认情况下,所有功能都未启用。
以下部分包含可用功能的列表
CLI 功能
main
- 启用 CLI 的预制入口点的 [Xtask::main
] 和 [Xtask::main_with_config
] 函数。error-handler
- 启用error_handler
模块中的错误处理函数。logger
- 启用logger
模块中的日志记录函数。
子命令功能
有几种特性可以启用子命令
- 组合特性 - 根据包类型一次启用多个有用的子命令
- 分离特性 - 分别启用每个子命令
组合特性
bin-crate
:- 启用 bin 包的有用子命令。lib-crate
- 启用 lib 包的有用子命令。bin-crate-extra
- 启用 bin 包的有用额外子命令。lib-crate-extra
- 启用 lib 包的有用额外子命令。
{bin,lib}-crate
特性只需要可以与 rustup
一起安装的标准 Rust 工具。 {bin,lib}-crate-extra
特性可能需要第三方工具。
分离特性
以下特性只需要标准 Rust 工具
subcommand-build
- 启用cargo xtask build
。subcommand-clippy
- 启用cargo xtask clippy
。subcommand-dist
- 启用cargo xtask dist
。subcommand-dist-archive
- 启用cargo xtask dist-archive
。subcommand-dist-build-bin
- 启用cargo xtask dist-build-bin
。subcommand-dist-build-completion
- 启用cargo xtask dist-build-completion
。subcommand-dist-build-doc
- 启用cargo xtask dist-build-doc
。subcommand-dist-build-license
- 启用cargo xtask dist-build-license
。subcommand-dist-build-man
- 启用cargo xtask dist-build-man
。subcommand-dist-build-readme
- 启用cargo xtask dist-build-readme
。subcommand-dist-clean
- 启用cargo xtask dist-clean
。subcommand-doc
- 启用cargo xtask doc
。subcommand-docsrs
- 启用cargo xtask docsrs
。subcommand-exec
- 启用cargo xtask exec
。subcommand-fmt
- 启用cargo xtask fmt
。subcommand-lint
- 启用cargo xtask lint
。subcommand-pre-release
- 启用cargo xtask pre-release
。subcommand-test
- 启用cargo xtask test
。subcommand-tidy
- 启用cargo xtask tidy
。
以下功能需要第三方工具
subcommand-sync-rdme
- 启用cargo xtask sync-rdme
。需要安装cargo-sync-rdme
。subcommand-udeps
- 启用cargo xtask udeps
。需要安装cargo-udeps
。
其他功能
archive
- 启用archive
模块,该模块提供了创建分发存档文件的功能。
最低支持的 Rust 版本 (MSRV)
最低支持的 Rust 版本是 Rust 1.70.0。在任何时候都支持至少最后一个稳定 Rust 的最后三个版本。
当软件包处于预发布状态(0.x.x)时,它可能在补丁版本中提高 MSRV。一旦软件包达到 1.x,任何 MSRV 的提高都将伴随着一个新的次要版本。
许可证
此项目受以下任一许可证的许可:
- Apache许可证,版本2.0(《LICENSE-APACHE》或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(《LICENSE-MIT》或http://opensource.org/licenses/MIT)
任你选择。
贡献
除非你明确表示 otherwise,否则根据Apache-2.0许可证定义的,你提交给作品中的任何有意贡献,都将如上所述双重许可,没有额外的条款或条件。
请参阅《CONTRIBUTING.md》。
依赖
~2–14MB
~168K SLoC