blob: 354b6e0f62741ea403ca3f479a75e8c4ad2b186c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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()));
}
|