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();
}