MCPcopy Index your code
hub / github.com/cargo-lambda/cargo-lambda / lambda_environment

Function lambda_environment

crates/cargo-lambda-metadata/src/env.rs:57–91  ·  view source on GitHub ↗
(
    base: Option<&HashMap<String, String>>,
    env_file: &Option<PathBuf>,
    vars: Option<&Vec<String>>,
)

Source from the content-addressed store, hash-verified

55}
56
57pub(crate) fn lambda_environment(
58 base: Option<&HashMap<String, String>>,
59 env_file: &Option<PathBuf>,
60 vars: Option<&Vec<String>>,
61) -> Result<Environment, MetadataError> {
62 let mut env = HashMap::new();
63
64 if let Some(base) = base.cloned() {
65 env.extend(base);
66 }
67
68 if let Some(path) = env_file {
69 if path.is_file() {
70 let env_variables =
71 read_file(path).map_err(|e| MetadataError::InvalidEnvFile(path.into(), e))?;
72 for (key, value) in env_variables {
73 env.insert(key, value);
74 }
75 } else {
76 return Err(MetadataError::InvalidEnvFile(
77 path.into(),
78 std::io::Error::new(std::io::ErrorKind::NotFound, "file not found"),
79 ));
80 }
81 }
82
83 if let Some(vars) = vars {
84 for var in vars {
85 let (key, value) = extract_var(var)?;
86 env.insert(key.to_string(), value.to_string());
87 }
88 }
89
90 Ok(env)
91}
92
93fn extract_var(line: &str) -> Result<(&str, &str), MetadataError> {
94 let mut iter = line.trim().splitn(2, '=');

Callers 6

lambda_environmentMethod · 0.85
test_empty_environmentFunction · 0.85
test_base_environmentFunction · 0.85

Calls 3

newFunction · 0.85
extract_varFunction · 0.85
insertMethod · 0.80

Tested by 5

test_empty_environmentFunction · 0.68
test_base_environmentFunction · 0.68