diff --git a/src/directory_processor.rs b/src/directory_processor.rs index c0dcb52..66f39fd 100644 --- a/src/directory_processor.rs +++ b/src/directory_processor.rs @@ -65,6 +65,15 @@ impl DirectoryProcessor { for entry in entries.flatten() { let path = entry.path(); + + // Check if path should be ignored (both files and directories) + if let Some(name) = path.file_name().and_then(|n| n.to_str()) { + if FILES_TO_IGNORE.iter().any(|&ignore| name.contains(ignore)) { + is_empty = false; + continue; + } + } + if path.is_dir() { // Recursively check subdirectories let subdir_empty = self.clean_target_directory(&path)?; @@ -87,14 +96,6 @@ impl DirectoryProcessor { format!("Error getting relative path for {}: {}", path.display(), e) })?; - // Skip files that should be ignored - if let Some(file_name) = path.file_name().and_then(|n| n.to_str()) { - if FILES_TO_IGNORE.iter().any(|&ignore| file_name.ends_with(ignore)) { - is_empty = false; - continue; - } - } - // Check if this file should exist based on source files let should_exist = if let Some(ext) = rel_path.extension().and_then(|e| e.to_str()) { if ext == "pdf" { diff --git a/src/main.rs b/src/main.rs index 82491cd..3a6d4c9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,7 +10,7 @@ pub const FILES_TO_COPY: [&str; 10] = [ "jpg", "jpeg", "png", "gif", "bmp", "tiff", "webp", "avif", "txt", "md", ]; pub const FILES_TO_CONVERT: [&str; 3] = ["odt", "doc", "docx"]; -pub const FILES_TO_IGNORE: [&str; 1] = ["DS_Store"]; +pub const FILES_TO_IGNORE: [&str; 5] = [".DS_Store", ".syncthing", ".sync-conflict-", ".stfolder", ".stversions"]; #[derive(Parser, Debug)] #[command(