0.3.42 |
|
---|---|
0.3.41 |
|
#26 in #make
23KB
401 行
cargo-rssc
cargo rssc - 为 crates 构建提供的 Rust 脚本
尝试一下
在您的 main rust 项目目录(包含 Cargo.toml 的目录)中运行
cargo install cargo-rssc
cargo rssc new
在您的 main rust 项目中打开新目录 scripts_rssc
中的新编辑器,并查看/编辑辅助 rust 项目的 rust 代码。
然后在主 rust 项目中尝试
cargo rssc build
cargo rssc release
cargo rssc docs
动机
Cargo 是一个构建 rust 项目的优秀工具。它具有所有基本功能:cargo build
,cargo build --release
,cargo fmt
,cargo test
,cargo doc
,...
但有时我们需要做更多的事情,比如复制一些文件、发布到 ftp 或输入长命令。这些都是需要自动化的任务。
这里有许多不同的构建系统和任务运行器:make、cmake、shell 脚本、cargo-make、cargo-script、cargo-run-script、runner、python 脚本、powershell 脚本、cmd 提示符脚本、...
遗憾的是,目前 Rust 社区还没有标准。我想得到类似 build.rs 的东西,这样我就可以用纯 Rust 编写我的 "脚本"。我不想学习另一种语法奇怪、难以调试的元语言。所以我会做一个非常简单、容易、Rust 风格的、可扩展的东西。
rssc - 为 crates 构建提供的 Rust 脚本
Rust 是一种编译语言。它并不是一种脚本或解释语言。但小型项目的编译速度非常快,可以忽略不计。后续调用将使用已构建的二进制文件,因此速度将更快。
scripts_rssc 辅助项目
在 main rust 项目
的根目录下,它将创建一个新目录 scripts_rssc
,其中包含一个新的辅助 rust 项目。它不应该干扰主 rust 项目。然后这个文件夹将作为主项目的一部分进行 git 提交和推送到远程仓库。它有自己的 .gitignore
,以避免提交其目标目录。
scripts_rssc 辅助项目包含在 Rust 代码中定义的用户任务。应从 scripts_rssc
文件夹开始,在一个新的编辑器中打开此辅助项目。它不与主项目共享依赖项,是完全独立的。
cargo rssc 子命令
将二进制包 cargo-rssc
添加到 cargo 中,作为新的子命令 cargo rssc
。
它读取 CLI 参数,并使用这些参数运行 scripts_rssc
二进制文件。如果需要,它将首先编译 scripts_rssc
。
cargo-rssc 源代码的代码流程简单,注释齐全,易于审计,可以在本开源包中找到。
在我第一次发布到 crates.io 之后,我发现当它用作
cargo-rssc new
- new 是第一个参数
或
cargo rssc new
- new 是第二个参数
模板
cargo-rssc 项目中包含两个文件夹,作为模板的 Rust 子项目。我可以为这些文件夹打开一个新的编辑器,并独立构建这些包。因此,它很容易调试和开发。但我不能发布这些文件夹和文件。我只能发布 Rust 项目的源代码。
在发布之前,我必须将 modules 模板中的 template_basic 和 template_with_lib 中的文件文本复制。由于 Rust 有 原始字符串,这并不困难。
template_basic
命令
cargo rssc new
将 template_basic 复制到 scripts_rssc
文件夹。
它没有依赖项,并且理解它的工作原理非常简单。
探索它并添加您自己的任务或 Rust 代码。
然后在主项目中运行您的任务,如下所示
cargo rssc build
您的代码将被编译并执行。
template_with_lib
这是一个正在进行中的项目。
目标是创建一个 cargo_rssc_lib,其中包含在构建 Rust 项目时常用的许多函数。
cargo crev 审查和建议
建议始终使用 cargo-crev
来验证每个依赖项的可信度。
请,传播此信息。
在网页上,使用此 URL 来阅读包审查。例如
https://web.crev.dev/rust-reviews/crate/num-traits/
依赖项
~200KB