use crossterm::terminal::ClearType;
use crossterm::{cursor, execute, terminal};
use std::io::Write as _;
pub fn safer_println(msg: &str, interactive: bool) {
if interactive {
let stdout = std::io::stdout();
let mut stdout_lock = stdout.lock();
for line in msg.split("\n") {
execute!(
stdout_lock,
terminal::Clear(ClearType::CurrentLine),
cursor::MoveToColumn(0)
)
.expect("Failed to clear line and reset cursor");
println!("{line}");
stdout_lock.flush().expect("Failed to flush stdout");
}
} else {
println!("{msg}");
}
}