Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src-tauri/src/cmd/rclone_core.rs
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ async fn is_rclone_running() -> bool {
let mut system = System::new_all();
system.refresh_processes(sysinfo::ProcessesToUpdate::All, true);

for (_pid, process) in system.processes() {
for process in system.processes().values() {
let process_name = process.name().to_string_lossy().to_lowercase();

if process_name.contains("rclone") {
Expand Down
98 changes: 54 additions & 44 deletions src-tauri/src/utils/path.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,43 +17,61 @@ fn get_app_dir() -> Result<PathBuf, String> {
}

fn get_user_data_dir() -> Result<PathBuf, String> {
#[cfg(target_os = "macos")]
{
let home = env::var("HOME").map_err(|_| "Failed to get HOME environment variable")?;
let data_dir = PathBuf::from(home)
.join("Library")
.join("Application Support")
.join("OpenList Desktop");
fs::create_dir_all(&data_dir)
.map_err(|e| format!("Failed to create data directory: {e}"))?;
Ok(data_dir)
}

#[cfg(not(target_os = "macos"))]
{
get_app_dir()
}
let data_dir = {
#[cfg(target_os = "macos")]
{
let home = env::var("HOME").map_err(|_| "Failed to get HOME environment variable")?;
PathBuf::from(home)
.join("Library")
.join("Application Support")
.join("OpenList Desktop")
}

#[cfg(target_os = "linux")]
{
let home = env::var("HOME").map_err(|_| "Failed to get HOME environment variable")?;
PathBuf::from(home)
.join(".local")
.join("share")
.join("OpenList Desktop")
}

#[cfg(target_os = "windows")]
{
let appdata =
env::var("APPDATA").map_err(|_| "Failed to get APPDATA environment variable")?;
PathBuf::from(appdata).join("OpenList Desktop")
}
};

fs::create_dir_all(&data_dir).map_err(|e| format!("Failed to create data directory: {e}"))?;

data_dir
.canonicalize()
.map_err(|e| format!("Failed to canonicalize data directory: {e}"))
}

fn get_user_logs_dir() -> Result<PathBuf, String> {
#[cfg(target_os = "macos")]
{
let home = env::var("HOME").map_err(|_| "Failed to get HOME environment variable")?;
let logs_dir = PathBuf::from(home)
.join("Library")
.join("Logs")
.join("OpenList Desktop");
fs::create_dir_all(&logs_dir)
.map_err(|e| format!("Failed to create logs directory: {e}"))?;
Ok(logs_dir)
}

#[cfg(not(target_os = "macos"))]
{
let logs = get_app_dir()?.join("logs");
fs::create_dir_all(&logs).map_err(|e| e.to_string())?;
Ok(logs)
}
let logs_dir = {
#[cfg(target_os = "macos")]
{
let home = env::var("HOME").map_err(|_| "Failed to get HOME environment variable")?;
PathBuf::from(home)
.join("Library")
.join("Logs")
.join("OpenList Desktop")
}

#[cfg(not(target_os = "macos"))]
{
get_user_data_dir()?.join("logs")
}
};

fs::create_dir_all(&logs_dir).map_err(|e| format!("Failed to create logs directory: {e}"))?;
logs_dir
.canonicalize()
.map_err(|e| format!("Failed to canonicalize logs directory: {e}"))
}

fn get_binary_path(binary: &str, service_name: &str) -> Result<PathBuf, String> {
Expand Down Expand Up @@ -96,15 +114,7 @@ pub fn get_rclone_config_path() -> Result<PathBuf, String> {
}

pub fn get_default_openlist_data_dir() -> Result<PathBuf, String> {
#[cfg(target_os = "macos")]
{
Ok(get_user_data_dir()?.join("data"))
}

#[cfg(not(target_os = "macos"))]
{
Ok(get_app_dir()?.join("data"))
}
Ok(get_user_data_dir()?.join("data"))
}

pub fn get_service_log_path() -> Result<PathBuf, String> {
Expand All @@ -123,6 +133,6 @@ pub fn get_service_log_path() -> Result<PathBuf, String> {

#[cfg(not(target_os = "macos"))]
{
Ok(get_app_dir()?.join("openlist-desktop-service.log"))
Ok(get_user_data_dir()?.join("openlist-desktop-service.log"))
}
}
Loading