mod colors {
pub const GREEN: &str = "\x1b[32m";
pub const RED: &str = "\x1b[31m";
pub const BLUE: &str = "\x1b[34m";
pub const BOLD: &str = "\x1b[1m";
pub const RESET: &str = "\x1b[0m";
}
fn supports_color() -> bool {
std::env::var("NO_COLOR").is_err() && std::env::var("TERM").map(|t| t != "dumb").unwrap_or(true)
}
pub fn print_success(message: &str) {
if supports_color() {
eprintln!(
"{}{}[OK]{} {}",
colors::BOLD,
colors::GREEN,
colors::RESET,
message
);
} else {
eprintln!("[OK] {}", message);
}
}
pub fn print_info(message: &str) {
if supports_color() {
eprintln!(
"{}{}[INFO]{} {}",
colors::BOLD,
colors::BLUE,
colors::RESET,
message
);
} else {
eprintln!("[INFO] {}", message);
}
}
pub fn print_error(message: &str) {
if supports_color() {
eprintln!(
"{}{}[ERROR]{} {}",
colors::BOLD,
colors::RED,
colors::RESET,
message
);
} else {
eprintln!("[ERROR] {}", message);
}
}