#variables #env-var #cache #helper #path

envcache

A build.rs辅助软件包,用于缓存环境变量

4个版本

0.1.3 2021年3月27日
0.1.2 2021年3月27日
0.1.1 2021年3月26日
0.1.0 2021年3月26日

#233 in 缓存


yair 中使用

CC0 许可证

7KB
62

🏴‍☠️ envcache

Actions Status Crates.io API Docs

envcache软件包(环境缓存)允许用户在build.rs脚本中缓存环境变量,以便后续对cargo的调用不需要指定相同的变量。

例如,假设你有一个build.rs,它需要指定SOME_VAR才能工作。可能是一个位于Rust生态系统之外的库的路径(如LLVM)

SOME_VAR=42 cargo test
cargo clippy # Will fail because SOME_VAR is not set

这将失败,因为运行cargo clippy需要它以SOME_VAR=42的方式运行。使用envcache,我们可以使用一个build.rs来确保这将运行

use envcache;
# std::env::set_var("OUT_DIR", std::env::temp_dir());
let mut envcache = envcache::EnvCache::new();
envcache.cache("SOME_VAR");

现在如果我们再次运行这个

SOME_VAR=42 cargo test
cargo clippy # SOME_VAR will be 42

您可以通过在命令行中重新指定来更改先前设置的缓存变量

SOME_VAR=42 cargo test
SOME_VAR=13 cargo test
cargo test # SOME_VAR will be 13!

请注意,运行cargo clean将删除先前缓存的变量,因此运行

SOME_VAR=42 cargo test
cargo clippy # Will work because we've cached SOME_VAR
cargo clean
cargo test # Will fail because SOME_VAR won't be set

无运行时依赖