util.rs

 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}