use crate::{KreuzbergError, Result};
pub fn apply_env_overrides(
host: &mut String,
port: &mut u16,
cors_origins: &mut Vec<String>,
max_request_body_bytes: &mut usize,
max_multipart_field_bytes: &mut usize,
) -> Result<()> {
if let Ok(env_host) = std::env::var("KREUZBERG_HOST") {
*host = env_host;
}
if let Ok(port_str) = std::env::var("KREUZBERG_PORT") {
*port = port_str.parse::<u16>().map_err(|e| {
KreuzbergError::validation(format!(
"KREUZBERG_PORT must be a valid u16 number, got '{}': {}",
port_str, e
))
})?;
}
if let Ok(origins_str) = std::env::var("KREUZBERG_CORS_ORIGINS") {
*cors_origins = origins_str
.split(',')
.map(|s| s.trim().to_string())
.filter(|s| !s.is_empty())
.collect();
}
if let Ok(bytes_str) = std::env::var("KREUZBERG_MAX_REQUEST_BODY_BYTES") {
*max_request_body_bytes = bytes_str.parse::<usize>().map_err(|e| {
KreuzbergError::validation(format!(
"KREUZBERG_MAX_REQUEST_BODY_BYTES must be a valid usize, got '{}': {}",
bytes_str, e
))
})?;
}
if let Ok(bytes_str) = std::env::var("KREUZBERG_MAX_MULTIPART_FIELD_BYTES") {
*max_multipart_field_bytes = bytes_str.parse::<usize>().map_err(|e| {
KreuzbergError::validation(format!(
"KREUZBERG_MAX_MULTIPART_FIELD_BYTES must be a valid usize, got '{}': {}",
bytes_str, e
))
})?;
}
Ok(())
}