pub mod formatters;
pub mod prompts;
use std::io::IsTerminal;
pub fn is_interactive_mode() -> bool {
std::io::stdin().is_terminal() && std::io::stdout().is_terminal()
}
pub fn should_prompt<T>(cli_value: &Option<T>, non_interactive: bool) -> bool {
cli_value.is_none() && !non_interactive && is_interactive_mode()
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_should_prompt_with_value() {
let value = Some("test");
assert!(!should_prompt(&value, false));
}
#[test]
fn test_should_prompt_non_interactive() {
let value: Option<String> = None;
assert!(!should_prompt(&value, true));
}
}