1use std::fs;
2
3use zed_extension_api::Result;
4
5pub(super) fn remove_outdated_versions(
6 language_server_id: &'static str,
7 version_dir: &str,
8) -> Result<()> {
9 let entries = fs::read_dir(".").map_err(|e| format!("failed to list working directory {e}"))?;
10 for entry in entries {
11 let entry = entry.map_err(|e| format!("failed to load directory entry {e}"))?;
12 if entry.file_name().to_str().is_none_or(|file_name| {
13 file_name.starts_with(language_server_id) && file_name != version_dir
14 }) {
15 fs::remove_dir_all(entry.path()).ok();
16 }
17 }
18 Ok(())
19}