The envcache crate (environment cache) lets users cache environmental variables in a build.rs script, so that subsequent calls to cargo are not required to be ran with the same variable specified.
For example, let's assume you have a build.rs that requires SOME_VAR
to be specified for work. Maybe its a path to some library that lives
outside of the Rust ecosystem (like LLVM):
sh
SOME_VAR=42 cargo test
cargo clippy # Will fail because SOME_VAR is not set
This would fail because the run to cargo clippy
requires that it is run
with SOME_VAR=42
. With the envcache, we can use a build.rs
that ensures
this will run:
``` use envcache;
let mut envcache = envcache::EnvCache::new(); envcache.cache("SOME_VAR"); ```
Now if we run this again:
sh
SOME_VAR=42 cargo test
cargo clippy # SOME_VAR will be 42
You can change a previously set cached variable by simply re-specifying it on the command line:
sh
SOME_VAR=42 cargo test
SOME_VAR=13 cargo test
cargo test # SOME_VAR will be 13!
Note that running cargo clean
will remove any previously cached variables,
so running:
sh
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