Add server config for mergable extensions

This commit is contained in:
Andras Schmelczer 2025-11-23 21:55:33 +00:00
parent 7008c54e2e
commit c3cbde052a
16 changed files with 214 additions and 71 deletions

View file

@ -1,7 +1,10 @@
pub fn is_file_type_mergable(path_or_file_name: &str) -> bool {
pub fn is_file_type_mergable(path_or_file_name: &str, mergeable_extensions: &[String]) -> bool {
let file_extension = path_or_file_name.split('.').next_back().unwrap_or_default();
let file_extension_lower = file_extension.to_lowercase();
matches!(file_extension.to_lowercase().as_str(), "md" | "txt")
mergeable_extensions
.iter()
.any(|ext| ext.to_lowercase() == file_extension_lower)
}
#[cfg(test)]
@ -10,14 +13,22 @@ mod tests {
#[test]
fn test_is_file_type_mergable() {
assert!(is_file_type_mergable(".md"));
assert!(is_file_type_mergable("hi.md"));
assert!(is_file_type_mergable("my/path/to/my/document.md"));
assert!(is_file_type_mergable("hi.MD"));
assert!(is_file_type_mergable("my/path/to/my/DOCUMENT.MD"));
let mergeable = vec!["md".to_owned(), "txt".to_owned()];
assert!(!is_file_type_mergable(".json"));
assert!(!is_file_type_mergable("HELLO.JSON"));
assert!(!is_file_type_mergable("my/config.yml"));
assert!(is_file_type_mergable(".md", &mergeable));
assert!(is_file_type_mergable("hi.md", &mergeable));
assert!(is_file_type_mergable(
"my/path/to/my/document.md",
&mergeable
));
assert!(is_file_type_mergable("hi.MD", &mergeable));
assert!(is_file_type_mergable(
"my/path/to/my/DOCUMENT.MD",
&mergeable
));
assert!(!is_file_type_mergable(".json", &mergeable));
assert!(!is_file_type_mergable("HELLO.JSON", &mergeable));
assert!(!is_file_type_mergable("my/config.yml", &mergeable));
}
}