aboutsummaryrefslogtreecommitdiff
path: root/vendor/indicatif/examples/cargowrap.rs
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2024-01-08 00:21:28 +0300
committerValentin Popov <valentin@popov.link>2024-01-08 00:21:28 +0300
commit1b6a04ca5504955c571d1c97504fb45ea0befee4 (patch)
tree7579f518b23313e8a9748a88ab6173d5e030b227 /vendor/indicatif/examples/cargowrap.rs
parent5ecd8cf2cba827454317368b68571df0d13d7842 (diff)
downloadfparkan-1b6a04ca5504955c571d1c97504fb45ea0befee4.tar.xz
fparkan-1b6a04ca5504955c571d1c97504fb45ea0befee4.zip
Initial vendor packages
Signed-off-by: Valentin Popov <valentin@popov.link>
Diffstat (limited to 'vendor/indicatif/examples/cargowrap.rs')
-rw-r--r--vendor/indicatif/examples/cargowrap.rs41
1 files changed, 41 insertions, 0 deletions
diff --git a/vendor/indicatif/examples/cargowrap.rs b/vendor/indicatif/examples/cargowrap.rs
new file mode 100644
index 0000000..354b6e0
--- /dev/null
+++ b/vendor/indicatif/examples/cargowrap.rs
@@ -0,0 +1,41 @@
+use std::io::{BufRead, BufReader};
+use std::process;
+use std::time::{Duration, Instant};
+
+use indicatif::{HumanDuration, ProgressBar, ProgressStyle};
+
+pub fn main() {
+ let started = Instant::now();
+
+ println!("Compiling package in release mode...");
+
+ let pb = ProgressBar::new_spinner();
+ pb.enable_steady_tick(Duration::from_millis(200));
+ pb.set_style(
+ ProgressStyle::with_template("{spinner:.dim.bold} cargo: {wide_msg}")
+ .unwrap()
+ .tick_chars("/|\\- "),
+ );
+
+ let mut p = process::Command::new("cargo")
+ .arg("build")
+ .arg("--release")
+ .stderr(process::Stdio::piped())
+ .spawn()
+ .unwrap();
+
+ for line in BufReader::new(p.stderr.take().unwrap()).lines() {
+ let line = line.unwrap();
+ let stripped_line = line.trim();
+ if !stripped_line.is_empty() {
+ pb.set_message(stripped_line.to_owned());
+ }
+ pb.tick();
+ }
+
+ p.wait().unwrap();
+
+ pb.finish_and_clear();
+
+ println!("Done in {}", HumanDuration(started.elapsed()));
+}