pub const DEFAULT_TIMEOUT_ENV_VAR: &str = "BASH_DEFAULT_TIMEOUT_MS";
pub const MAX_TIMEOUT_ENV_VAR: &str = "BASH_MAX_TIMEOUT_MS";
pub const DEFAULT_TIMEOUT_MS: u64 = 120_000;
pub const MAX_TIMEOUT_MS: u64 = 600_000;
pub const MAX_OUTPUT_BYTES_PER_STREAM: usize = 64 * 1024;
fn read_positive_env_u64(name: &str) -> Option<u64> {
std::env::var(name)
.ok()
.and_then(|value| value.parse::<u64>().ok())
.filter(|value| *value > 0)
}
pub fn default_timeout_ms() -> u64 {
read_positive_env_u64(DEFAULT_TIMEOUT_ENV_VAR).unwrap_or(DEFAULT_TIMEOUT_MS)
}
pub fn max_timeout_ms() -> u64 {
let default_timeout = default_timeout_ms();
let configured_max = read_positive_env_u64(MAX_TIMEOUT_ENV_VAR).unwrap_or(MAX_TIMEOUT_MS);
configured_max.max(default_timeout)
}