Просмотр исходного кода

util/cli: Add spinner utility.

parazyd 4 лет назад
Родитель
Сommit
f9f11ad45a
1 измененных файлов с 12 добавлено и 0 удалено
  1. 12 0
      src/util/cli.rs

+ 12 - 0
src/util/cli.rs

@@ -4,8 +4,10 @@ use std::{
     marker::PhantomData,
     path::{Path, PathBuf},
     str,
+    time::Duration,
 };
 
+use indicatif::{ProgressBar, ProgressStyle};
 use serde::{de::DeserializeOwned, Serialize};
 use simplelog::ConfigBuilder;
 
@@ -196,3 +198,13 @@ macro_rules! async_daemonize {
         }
     };
 }
+
+pub fn progress_bar(message: &str) -> ProgressBar {
+    let progress_bar = ProgressBar::new(42);
+    progress_bar.set_style(
+        ProgressStyle::default_spinner().template("{spinner:.green} {wide_msg}").unwrap(),
+    );
+    progress_bar.enable_steady_tick(Duration::from_millis(100));
+    progress_bar.set_message(message.to_string());
+    progress_bar
+}