53 lines
2.0 KiB
Rust
Raw Normal View History

use tauri::{RunEvent, WindowEvent};
2025-06-09 10:04:40 +01:00
mod utils;
mod commands;
2025-06-09 10:04:40 +01:00
2025-07-15 15:48:33 +01:00
use commands::{start_backend, check_backend_health, get_opened_file, clear_opened_file, cleanup_backend, set_opened_file};
2025-07-15 17:08:46 +01:00
use utils::{add_log, get_tauri_logs};
2025-06-05 14:56:16 +01:00
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
tauri::Builder::default()
2025-06-09 10:04:40 +01:00
.plugin(tauri_plugin_shell::init())
2025-07-04 14:33:59 +01:00
.plugin(tauri_plugin_fs::init())
2025-07-15 16:29:54 +01:00
.setup(|_| {
2025-07-15 17:08:46 +01:00
add_log("🚀 Tauri app setup started".to_string());
// Log all command line arguments for debugging
2025-07-15 15:58:45 +01:00
let args: Vec<String> = std::env::args().collect();
2025-07-15 17:08:46 +01:00
add_log(format!("🔍 DEBUG: All command line args: {:?}", args));
// Check command line arguments at startup for macOS file opening
for (i, arg) in args.iter().enumerate() {
add_log(format!("🔍 DEBUG: Arg {}: {}", i, arg));
if i > 0 && arg.ends_with(".pdf") && std::path::Path::new(arg).exists() {
2025-07-15 15:58:45 +01:00
add_log(format!("📂 File argument detected at startup: {}", arg));
set_opened_file(arg.clone());
break; // Only handle the first PDF file
}
}
2025-07-15 17:08:46 +01:00
add_log("🔍 DEBUG: Setup completed, checking for opened file...".to_string());
2025-07-15 15:58:45 +01:00
Ok(())
})
2025-07-15 17:08:46 +01:00
.invoke_handler(tauri::generate_handler![start_backend, check_backend_health, get_opened_file, clear_opened_file, get_tauri_logs])
.build(tauri::generate_context!())
.expect("error while building tauri application")
.run(|app_handle, event| {
match event {
2025-07-01 14:22:19 +01:00
RunEvent::ExitRequested { .. } => {
add_log("🔄 App exit requested, cleaning up...".to_string());
cleanup_backend();
// Use Tauri's built-in cleanup
app_handle.cleanup_before_exit();
}
2025-07-01 14:22:19 +01:00
RunEvent::WindowEvent { event: WindowEvent::CloseRequested {.. }, .. } => {
add_log("🔄 Window close requested, cleaning up...".to_string());
cleanup_backend();
// Allow the window to close
}
_ => {}
}
});
}