From 14bfa3c243f3376c9174b30f195d034bec26eb6c Mon Sep 17 00:00:00 2001 From: zhom <2717306+zhom@users.noreply.github.com> Date: Sat, 3 Jan 2026 17:04:40 +0400 Subject: [PATCH] chore: create dist stub for build --- src-tauri/build.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src-tauri/build.rs b/src-tauri/build.rs index 3c6fc99..8c9359e 100644 --- a/src-tauri/build.rs +++ b/src-tauri/build.rs @@ -1,6 +1,10 @@ fn main() { println!("cargo::rustc-check-cfg=cfg(mobile)"); + // Ensure dist folder exists for tauri::generate_context!() macro + // This allows running cargo test without building the frontend first + ensure_dist_folder_exists(); + #[cfg(target_os = "macos")] { println!("cargo:rustc-link-lib=framework=CoreFoundation"); @@ -89,3 +93,26 @@ fn external_binaries_exist() -> bool { nodecar_exists && donut_proxy_exists } + +fn ensure_dist_folder_exists() { + use std::fs; + use std::path::PathBuf; + + let manifest_dir = std::env::var("CARGO_MANIFEST_DIR").unwrap(); + let dist_dir = PathBuf::from(&manifest_dir).join("..").join("dist"); + + if !dist_dir.exists() { + fs::create_dir_all(&dist_dir).expect("Failed to create dist directory"); + let index_path = dist_dir.join("index.html"); + fs::write( + &index_path, + "", + ) + .expect("Failed to create stub index.html"); + println!( + "cargo:warning=Created stub dist folder for compilation. Run 'pnpm build' for full frontend." + ); + } + + println!("cargo:rerun-if-changed=../dist"); +}