Improve display log

This commit is contained in:
Daniel M 2021-03-30 19:07:18 +02:00
parent bc84eb1c2a
commit 9edb2daf86

View File

@ -4,9 +4,10 @@ use std::io::stdout;
use tokio::sync::mpsc; use tokio::sync::mpsc;
use crossterm::cursor::{ MoveUp }; use crossterm::cursor::{ MoveToPreviousLine };
use crossterm::execute; use crossterm::execute;
use crossterm::terminal::{ Clear, ClearType }; use crossterm::terminal::{ Clear, ClearType };
use crossterm::style::{ Print };
use crate::errors::*; use crate::errors::*;
@ -85,58 +86,50 @@ fn print_accumulated_report(statuses: & HashMap<i32, InfoHolder>, msg_queue: &mu
execute!( execute!(
stdout(), stdout(),
crossterm::cursor::Hide, crossterm::cursor::Hide,
MoveUp(moved_lines) MoveToPreviousLine(moved_lines)
)?; )?;
for msg in msg_queue.drain(..) { for msg in msg_queue.drain(..) {
let ct_now = chrono::Local::now(); let ct_now = chrono::Local::now();
print!("{} > {}", ct_now.format("%H:%M:%S"), msg);
execute!( execute!(
stdout(), stdout(),
Clear(ClearType::UntilNewLine) Print(format!("{} > {}", ct_now.format("%H:%M:%S"), msg)),
Clear(ClearType::UntilNewLine),
Print("\n")
)?; )?;
println!();
} }
print!("----------------------------------------");
execute!( execute!(
stdout(), stdout(),
Clear(ClearType::UntilNewLine) Print(format!("----------------------------------------")),
Clear(ClearType::UntilNewLine),
Print("\n")
)?; )?;
println!();
for (_k, v) in statuses { for (_k, v) in statuses {
let percent_complete = v.progress as f64 / v.total_size as f64 * 100.0; let percent_complete = v.progress as f64 / v.total_size as f64 * 100.0;
print!("Status: {:6.2} mb/s {:5.2}% completed '{}'", v.speed_mbps, percent_complete, v.filename);
execute!( execute!(
stdout(), stdout(),
Clear(ClearType::UntilNewLine) Print(format!("Status: {:6.2} mb/s {:5.2}% completed '{}'", v.speed_mbps, percent_complete, v.filename)),
Clear(ClearType::UntilNewLine),
Print("\n")
)?; )?;
println!("");
dl_speed_sum += v.speed_mbps; dl_speed_sum += v.speed_mbps;
} }
println!();
if statuses.len() != 0 {
print!(" =>> Accumulated download speed: {:6.2} mb/s", dl_speed_sum);
}
execute!(
stdout(),
Clear(ClearType::UntilNewLine)
)?;
println!("");
execute!( execute!(
stdout(), stdout(),
Clear(ClearType::CurrentLine),
Print("\n"),
Print(format!(" =>> Accumulated download speed: {:6.2} mb/s", dl_speed_sum)),
Clear(ClearType::UntilNewLine),
Print("\n"),
Clear(ClearType::FromCursorDown),
crossterm::cursor::Show crossterm::cursor::Show
)?; )?;
@ -215,10 +208,10 @@ pub async fn watch_and_print_reports(mut receiver: mpsc::UnboundedReceiver<DlRep
execute!( execute!(
stdout(), stdout(),
MoveUp(2) MoveToPreviousLine(2),
Print("All done!"),
Clear(ClearType::FromCursorDown)
)?; )?;
println!("All done!");
Ok(()) Ok(())
} }