pub mod terminal;
pub mod raw;
pub mod settings;
#[cfg(windows)]
pub mod windows;
pub use raw::RawModeGuard;
pub use settings::{are_colors_enabled, set_colors_enabled};
pub use terminal::TerminalSize;
#[cfg(windows)]
pub use windows::enable_ansi_support;
use std::{io::IsTerminal, sync::Once};
static INIT: Once = Once::new();
pub fn init_term() {
INIT.call_once(|| {
let no_color_env = std::env::var("NO_COLOR").is_ok_and(|v| v.parse::<bool>().unwrap_or(false));
let is_tty = std::io::stdout().is_terminal();
if no_color_env || !is_tty {
set_colors_enabled(false);
}
#[cfg(windows)]
{
if settings::are_colors_enabled() {
let _ = crate::windows::enable_ansi_support();
}
}
});
}