use std::process::Command; use vergen::EmitBuilder; fn main() { println!("cargo:rerun-if-changed=./src/src_webpack"); Command::new("rm") .arg("./src/webserver/bundle.js") .output() .unwrap(); match Command::new("cmd").spawn() { Ok(_) => { println!("Assuming build on windows"); let output = Command::new("cmd") .arg("/K") .arg("npx") .arg("webpack") .current_dir("./src_webpack") .output() .unwrap(); println!("status: {}", output.status); println!("stdout: {}", String::from_utf8_lossy(&output.stdout)); println!("stderr: {}", String::from_utf8_lossy(&output.stderr)); assert!(output.status.success()); } Err(_) => { println!("Assuming build on linux"); let output = Command::new("npx") .arg("webpack") .current_dir("./src_webpack") .output() .unwrap(); println!("status: {}", output.status); println!("stdout: {}", String::from_utf8_lossy(&output.stdout)); println!("stderr: {}", String::from_utf8_lossy(&output.stderr)); assert!(output.status.success()); } } embuild::espidf::sysenv::output(); let _ = EmitBuilder::builder().all_git().all_build().emit(); }