From 86cf3e87f7b79b4f1c63d82714221e087dc98adb Mon Sep 17 00:00:00 2001 From: ddidderr Date: Fri, 14 Nov 2025 10:34:45 +0100 Subject: [PATCH] skip .sync and .softlan_game_installed --- crates/lanspread-peer/src/lib.rs | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/crates/lanspread-peer/src/lib.rs b/crates/lanspread-peer/src/lib.rs index 22096f8..18f7888 100644 --- a/crates/lanspread-peer/src/lib.rs +++ b/crates/lanspread-peer/src/lib.rs @@ -2578,8 +2578,28 @@ async fn get_game_file_descriptions( for entry in walkdir::WalkDir::new(&game_path) .into_iter() - // Skip the local install folder; it's not meant to sync. - .filter_entry(|entry| !entry.path().starts_with(&local_dir)) + .filter_entry(|entry| { + let path = entry.path(); + + // Skip the local install folder; it's not meant to sync. + if path.starts_with(&local_dir) { + return false; + } + + // Root-level exclusions only. + if entry.depth() == 1 + && let Some(name) = path.file_name().and_then(|n| n.to_str()) + { + if entry.file_type().is_dir() && name == ".sync" { + return false; + } + if entry.file_type().is_file() && name == ".softlan_game_installed" { + return false; + } + } + + true + }) .filter_map(std::result::Result::ok) { let relative_path = match entry.path().strip_prefix(&base_dir) {