#cargo-command #command-line-interface #xtask #workspace #bin #subcommand #build

bin+lib cli-xtask

一组 cargo-xtask 的实用函数和命令行界面

15 个版本 (8 个重大更新)

0.8.0 2023 年 9 月 24 日
0.6.1 2022 年 12 月 3 日
0.6.0 2022 年 10 月 7 日

#210编程语言

Download history 164/week @ 2024-04-08 518/week @ 2024-04-15 299/week @ 2024-04-22 257/week @ 2024-04-29 349/week @ 2024-05-06 312/week @ 2024-05-13 393/week @ 2024-05-20 189/week @ 2024-05-27 393/week @ 2024-06-03 381/week @ 2024-06-10 284/week @ 2024-06-17 159/week @ 2024-06-24 505/week @ 2024-07-01 470/week @ 2024-07-08 234/week @ 2024-07-15 454/week @ 2024-07-22

1,685 每月下载

MIT/Apache

180KB
3K SLoC

cli-xtask

Maintenance: passively-maintained License: MIT OR Apache-2.0 crates.io docs.rs Rust: ^1.70.0 GitHub Actions: CI Codecov

一组 cargo-xtask 的实用函数和命令行界面。

此软件包提供了以下实用工具

用法

首先,根据 cargo-xtask 网站的说明 创建一个 xtask crate。

然后,运行以下命令将 cli-xtask 添加到依赖项。

  • 对于 bin crate

    cargo add -p xtask cli-xtask --features main,bin-crate
    

    如果你想要使用额外的工具,如 cargo-sync-rdmecargo-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-rdmecargo-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 工具

以下功能需要第三方工具

其他功能

  • archive - 启用 archive 模块,该模块提供了创建分发存档文件的功能。

最低支持的 Rust 版本 (MSRV)

最低支持的 Rust 版本是 Rust 1.70.0。在任何时候都支持至少最后一个稳定 Rust 的最后三个版本。

当软件包处于预发布状态(0.x.x)时,它可能在补丁版本中提高 MSRV。一旦软件包达到 1.x,任何 MSRV 的提高都将伴随着一个新的次要版本。

许可证

此项目受以下任一许可证的许可:

任你选择。

贡献

除非你明确表示 otherwise,否则根据Apache-2.0许可证定义的,你提交给作品中的任何有意贡献,都将如上所述双重许可,没有额外的条款或条件。

请参阅《CONTRIBUTING.md》。

依赖

~2–14MB
~168K SLoC