mod sidecar; use std::sync::Mutex; use tauri::Manager; #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { tauri::Builder::default() .plugin(tauri_plugin_shell::init()) .plugin(tauri_plugin_dialog::init()) .plugin(tauri_plugin_process::init()) .manage(sidecar::ManagedSidecar(Mutex::new( sidecar::SidecarManager::new(), ))) .setup(|app| { let resource_dir = app .path() .resource_dir() .expect("failed to resolve resource dir"); let data_dir = app .path() .app_data_dir() .expect("failed to resolve app data dir"); // Ensure the data directory exists std::fs::create_dir_all(&data_dir).expect("failed to create app data dir"); sidecar::init_dirs(resource_dir, data_dir); Ok(()) }) .invoke_handler(tauri::generate_handler![ sidecar::check_sidecar, sidecar::download_sidecar, sidecar::check_sidecar_update, sidecar::get_sidecar_port, sidecar::start_sidecar, sidecar::stop_sidecar, ]) .run(tauri::generate_context!()) .expect("error while running tauri application"); }