Răsfoiți Sursa

feat: commit code

YuKun Liu 3 ani în urmă
părinte
comite
7860f8b931
2 a modificat fișierele cu 12 adăugiri și 3 ștergeri
  1. 1 0
      Cargo.toml
  2. 11 3
      src/builder.rs

+ 1 - 0
Cargo.toml

@@ -36,6 +36,7 @@ regex = "1.5.4"
 chrono = "0.4.19"
 anyhow = "1.0.53"
 hyper = "0.14.17"
+loading = "0.3.0"
 
 axum = { version = "0.5.1", features = ["ws", "headers"] }
 tower-http = { version = "0.2.2", features = ["fs", "trace"] }

+ 11 - 3
src/builder.rs

@@ -6,7 +6,7 @@ use crate::{
 };
 use std::{
     fs::{copy, create_dir_all, remove_dir_all, File},
-    io::Read,
+    io::{Read, BufRead},
     panic,
     path::PathBuf,
     process::Command,
@@ -42,8 +42,9 @@ pub fn build(config: &CrateConfig, quiet: bool) -> Result<()> {
         .arg("build")
         .arg("--target")
         .arg("wasm32-unknown-unknown")
-        .stdout(std::process::Stdio::inherit())
-        .stderr(std::process::Stdio::inherit());
+        .arg("--message-format=json")
+        .stdout(std::process::Stdio::piped())
+        .stderr(std::process::Stdio::piped());
 
     if config.release {
         cmd.arg("--release");
@@ -74,7 +75,14 @@ pub fn build(config: &CrateConfig, quiet: bool) -> Result<()> {
         ExecutableType::Example(name) => cmd.arg("--example").arg(name),
     };
 
+    let loading = loading::Loading::default();
+    loading.text("Building");
     let output = cmd.output()?;
+    for i in output.stdout.lines() {
+        // println!("{:?}", i);
+    }
+    loading.success("OK");
+    loading.end();
 
     if !output.status.success() {
         log::error!("Build failed!");