vs_core/service/
remove.rs1use std::fs;
4
5use crate::{App, CoreError, UseScope};
6
7impl App {
8 pub fn remove_plugin(&self, name: &str) -> Result<bool, CoreError> {
10 let removed = self.registry.remove_plugin(name)?;
11 if !removed {
12 return Ok(false);
13 }
14
15 let _ = self.unuse_tool(name, UseScope::Global);
17
18 let source_dir = self.home().join("plugins").join("sources").join(name);
20 if source_dir.exists() {
21 fs::remove_dir_all(&source_dir)?;
22 }
23
24 let cache_dir = self.runtime_root().join(name);
26 if cache_dir.exists() {
27 fs::remove_dir_all(&cache_dir)?;
28 }
29
30 Ok(true)
31 }
32}