fp-dotfiles-manager 0.2.5

Minimal, zero-dependency Chezmoi-based dotfiles manager
use std::io::IsTerminal;

fn use_color() -> bool {
    std::io::stdout().is_terminal() && std::env::var("NO_COLOR").is_err()
}

fn log_styled(prefix: &str, color_code: &str, msg: &str) {
    if use_color() {
        println!("{}{}{}\x1B[0m", color_code, prefix, msg);
    } else {
        println!("{}{}", prefix, msg);
    }
}

pub fn log_section(msg: &str) {
    log_styled("󰆍 ", "\x1B[1;34m", msg);
}
pub fn log_step(msg: &str) {
    log_styled("  󰧑 ", "\x1B[1;36m", msg);
}
pub fn log_success(msg: &str) {
    log_styled("", "\x1B[1;32m", msg);
}
pub fn log_warn(msg: &str) {
    log_styled("", "\x1B[1;33m", msg);
}
pub fn log_error(msg: &str) {
    log_styled("", "\x1B[1;33m", msg);
}
pub fn log_done(msg: &str) {
    log_styled("󰄬 ", "\x1B[1;32m", msg);
}