1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
use std::fs;
use std::path::Path;
use super::{CliError, LalResult, Manifest};
pub fn remove(manifest: &Manifest, xs: Vec<&str>, save: bool, savedev: bool) -> LalResult<()> {
debug!("Removing dependencies {:?}", xs);
if save || savedev {
let mut mf = manifest.clone();
let mut hmap = if save { mf.dependencies.clone() } else { mf.devDependencies.clone() };
for component in xs.clone() {
if !hmap.contains_key(component) {
return Err(CliError::MissingComponent(component.to_string()));
}
debug!("Removing {} from manifest", component);
hmap.remove(component);
}
if save {
mf.dependencies = hmap;
} else {
mf.devDependencies = hmap;
}
info!("Updating manifest with removed dependencies");
mf.write()?;
}
let input = Path::new("./INPUT");
if !input.is_dir() {
return Ok(());
}
for component in xs {
let pth = Path::new(&input).join(component);
if pth.is_dir() {
debug!("Deleting INPUT/{}", component);
fs::remove_dir_all(&pth)?;
}
}
Ok(())
}