feat: cargo format struct

This commit is contained in:
YuKun Liu committed 2022-07-08 09:26:05 +08:00
1 parent 7860f8b931
commit 5edcb9238c
2 files changed
+43 -8

No files matched your search

+18 -8
View File
@@ -77,18 +77,28 @@ pub fn build(config: &CrateConfig, quiet: bool) -> Result<()> {
let loading = loading::Loading::default();
loading.text("Building");
let output = cmd.output()?;
for i in output.stdout.lines() {
// println!("{:?}", i);
let mut child = cmd.spawn()?;
let out = child.stdout.take().unwrap();
let mut out = std::io::BufReader::new(out);
let mut s = String::new();
let mut n = 0;
while let Ok(_) = out.read_line(&mut s) {
// 进程退出后结束循环
if let Ok(Some(_)) = child.try_wait() {
break;
}
println!("\n{}\n", s);
loading.text(format!("Building {}", n));
n += 1;
}
loading.success("OK");
loading.end();
if !output.status.success() {
log::error!("Build failed!");
let reason = String::from_utf8_lossy(&output.stderr).to_string();
return Err(Error::BuildFailed(reason));
}
// if !output.status.success() {
// log::error!("Build failed!");
// let reason = String::from_utf8_lossy(&output.stderr).to_string();
// return Err(Error::BuildFailed(reason));
// }
// [2] Establish the output directory structure
let bindgen_outdir = out_dir.join("assets").join("dioxus");
+25
View File
@@ -1,4 +1,6 @@
//! Utilities for working with cargo and rust files
use serde::Serialize;
use crate::error::{Error, Result};
use std::{
env, fs,
@@ -90,3 +92,26 @@ impl Metadata {
Err(Error::CargoError("InvalidOutput".to_string()))
}
}
#[derive(Serialize, Debug, Clone)]
pub struct CargoFormatInfo {
pub reason: CargoFormatReason,
#[serde(default)]
pub package_id: String,
#[serde(default)]
manifest_path: String,
#[serde(default)]
message: Option<serde_json::Value>
}
#[derive(Serialize, Debug, Clone)]
pub enum CargoFormatReason {
#[serde(rename = "compiler-message")]
CompilerMessage,
#[serde(rename = "compiler-artifact")]
CompilerArtifact,
#[serde(rename = "build-script-executed")]
BuildScriptExecuted,
#[serde(rename = "build-finished")]
BuildFinished,
}