use std::env;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum InteractivityMode {
#[default]
Interactive,
NonInteractive,
}
impl InteractivityMode {
pub fn from_env() -> Self {
if is_enabled_in_env("RABBITMQADMIN_NON_INTERACTIVE_MODE") {
Self::NonInteractive
} else {
Self::Interactive
}
}
pub fn is_non_interactive(&self) -> bool {
matches!(self, Self::NonInteractive)
}
}
pub fn is_non_interactive() -> bool {
InteractivityMode::from_env().is_non_interactive()
}
pub fn should_infer_subcommands() -> bool {
is_enabled_in_env("RABBITMQADMIN_INFER_SUBCOMMANDS")
}
pub fn should_infer_long_options() -> bool {
is_enabled_in_env("RABBITMQADMIN_INFER_LONG_OPTIONS")
}
fn is_enabled_in_env(key: &str) -> bool {
match env::var(key) {
Ok(val) => val.to_lowercase().trim() == "true",
Err(_) => false,
}
}