use std::{ops::SubAssign, process::exit, time::Duration};
pub fn display_timer() {
tokio::spawn(async move {
let timeout = 60 * 5;
let mut duration = Duration::from_secs(timeout);
let pb = indicatif::ProgressBar::new(timeout);
pb.set_style(
indicatif::ProgressStyle::default_bar()
.template("\nEnding session in {msg} [{bar:20.yellow}]")
.unwrap()
.progress_chars("#-"),
);
pb.set_message(indicatif::FormattedDuration(duration).to_string());
pb.set_position(timeout);
for _ in (0..timeout).rev() {
tokio::time::sleep(Duration::from_secs(1)).await;
duration.sub_assign(Duration::from_secs(1));
pb.set_message(indicatif::FormattedDuration(duration).to_string());
pb.dec(1);
}
println!("Server session expired");
exit(0)
});
}