Expand description
§Overview
This crate allows you to load .env files in your compilation step. It is built to be used in your build.rs file.
§Usage
- Ensure you have build scripts enabled via the
build
configuration in yourCargo.toml
- Add
dotenv-build
as a build dependency - Create a
build.rs
file that usesdotenv-build
to generatecargo:
instructions. - Use the
env!
oroption_env!
macro in your code
§Cargo.toml
[package]
#..
build = "build.rs"
[dependencies]
#..
[build-dependencies]
dotenv-build = "0.1"
§build.rs
// in build.rs
fn main() {
dotenv_build::output(dotenv_build::Config::default()).unwrap();
}
§Use in code
ⓘ
println!("Your environment variable in .env: {}", env!("TEST_VARIABLE"));
§Configuration
Read more about the available options here: Config
let config = dotenv_build::Config {
filename: std::path::Path::new(".env.other"),
recursive_search: false,
fail_if_missing_dotenv: false,
..Default::default()
};
dotenv_build::output(config).unwrap();
§Multiple files
Use output_multiple
for this:
use std::path::Path;
use dotenv_build::Config;
let configs = vec![
// load .env.base
Config {
filename: Path::new(".env.base"),
// fail_if_missing_dotenv: true,
..Default::default()
},
// load .env.staging
Config {
filename: Path::new(".env.staging"),
..Default::default()
},
// load .env
Config::default(),
];
dotenv_build::output_multiple(configs).unwrap();
Structs§
Functions§
- output
- Outputs the necessary build.rs instructions.
- output_
multiple - Same as
output
but to read multiple files