Skip to content

Commit 6570db7

Browse files
committed
Enhance backend server resource path resolution in Tauri
- Updated logic to include additional paths for the backend server executable, accommodating the AppImage structure and ensuring resources are correctly located in both Windows and non-Windows environments. - Improved comments for clarity on resource directory handling, enhancing maintainability and understanding of the code. These changes improve the reliability of backend server execution by ensuring all potential resource locations are checked.
1 parent 3a2b68f commit 6570db7

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

frontend/src-tauri/src/lib.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,13 +441,18 @@ fn start_backend_server(
441441

442442
// Try Tauri resource resolution (for bundled resources)
443443
if let Ok(resource_dir) = app.path().resource_dir() {
444+
// Resources may be in a 'resources' subdirectory (AppImage structure)
444445
#[cfg(windows)]
445446
{
447+
possible_exe_paths.push(resource_dir.join("resources").join("backend-server.exe"));
448+
possible_exe_paths.push(resource_dir.join("resources").join("backend-server"));
446449
possible_exe_paths.push(resource_dir.join("backend-server.exe"));
447450
possible_exe_paths.push(resource_dir.join("backend-server"));
448451
}
449452
#[cfg(not(windows))]
450453
{
454+
possible_exe_paths.push(resource_dir.join("resources").join("backend-server"));
455+
possible_exe_paths.push(resource_dir.join("resources").join("backend-server.exe"));
451456
possible_exe_paths.push(resource_dir.join("backend-server"));
452457
possible_exe_paths.push(resource_dir.join("backend-server.exe"));
453458
}
@@ -982,13 +987,18 @@ pub fn run() {
982987
warn!("Resource directory does not exist: {:?}", resource_dir);
983988
}
984989
// Prioritize platform-specific executables
990+
// Note: Resources may be in a 'resources' subdirectory (AppImage structure)
985991
#[cfg(windows)]
986992
{
993+
possible_exe_paths.push(resource_dir.join("resources").join("backend-server.exe"));
994+
possible_exe_paths.push(resource_dir.join("resources").join("backend-server"));
987995
possible_exe_paths.push(resource_dir.join("backend-server.exe"));
988996
possible_exe_paths.push(resource_dir.join("backend-server"));
989997
}
990998
#[cfg(not(windows))]
991999
{
1000+
possible_exe_paths.push(resource_dir.join("resources").join("backend-server"));
1001+
possible_exe_paths.push(resource_dir.join("resources").join("backend-server.exe"));
9921002
possible_exe_paths.push(resource_dir.join("backend-server"));
9931003
possible_exe_paths.push(resource_dir.join("backend-server.exe"));
9941004
}
@@ -1031,6 +1041,11 @@ pub fn run() {
10311041
if let Ok(appdir) = std::env::var("APPDIR") {
10321042
info!("AppImage APPDIR: {}", appdir);
10331043
let appdir_path = PathBuf::from(&appdir);
1044+
// AppImage structure: usr/lib/ProductName/resources/backend-server
1045+
possible_exe_paths.push(appdir_path.join("usr").join("lib").join("Budget Planer").join("resources").join("backend-server"));
1046+
possible_exe_paths.push(appdir_path.join("usr").join("lib").join("budget-planer").join("resources").join("backend-server"));
1047+
possible_exe_paths.push(appdir_path.join("usr").join("lib").join("com.budgetplaner").join("resources").join("backend-server"));
1048+
// Also check without resources subdirectory
10341049
possible_exe_paths.push(appdir_path.join("usr").join("lib").join("backend-server"));
10351050
possible_exe_paths.push(appdir_path.join("usr").join("share").join("backend-server"));
10361051
possible_exe_paths.push(appdir_path.join("resources").join("backend-server"));

0 commit comments

Comments
 (0)