summaryrefslogtreecommitdiff
path: root/src/cargo
diff options
context:
space:
mode:
authorfxqnlr <[email protected]>2024-08-17 00:14:10 +0200
committerfxqnlr <[email protected]>2024-08-17 00:14:10 +0200
commit137346307248bc9e327847e549c3d6c24b3b11f3 (patch)
tree94d73000aa881c912f93eccbfb9e0d0a7c5857ea /src/cargo
parent371a77a994aeb0beae53f24a0edbf99d70133c33 (diff)
downloadrsrclean-137346307248bc9e327847e549c3d6c24b3b11f3.tar
rsrclean-137346307248bc9e327847e549c3d6c24b3b11f3.tar.gz
rsrclean-137346307248bc9e327847e549c3d6c24b3b11f3.zip
add external cargoHEADmain
Diffstat (limited to 'src/cargo')
-rw-r--r--src/cargo/external.rs19
-rw-r--r--src/cargo/internal.rs28
2 files changed, 47 insertions, 0 deletions
diff --git a/src/cargo/external.rs b/src/cargo/external.rs
new file mode 100644
index 0000000..c956b68
--- /dev/null
+++ b/src/cargo/external.rs
@@ -0,0 +1,19 @@
1use std::{path::Path, process::Command};
2
3use crate::cli::Args;
4
5pub fn clean_ext(path: &Path, cli: &Args) {
6 let mut args = vec!["clean", "--manifest-path", path.to_str().unwrap()];
7 if cli.dry_run {
8 args.push("--dry-run");
9 }
10 if cli.doc {
11 args.push("--doc");
12 }
13 Command::new("cargo")
14 .args(args)
15 .spawn()
16 .unwrap()
17 .wait_with_output()
18 .unwrap();
19}
diff --git a/src/cargo/internal.rs b/src/cargo/internal.rs
new file mode 100644
index 0000000..b3e44e4
--- /dev/null
+++ b/src/cargo/internal.rs
@@ -0,0 +1,28 @@
1use std::path::Path;
2
3use cargo::{
4 core::Workspace,
5 ops::{clean, CleanOptions},
6 util::{context::GlobalContext, interning::InternedString},
7 CargoResult,
8};
9
10use crate::cli::Args;
11
12pub fn clean_int(path: &Path, cli: &Args) -> CargoResult<()> {
13 let gctx = GlobalContext::default()?;
14
15 let workspace = Workspace::new(path, &gctx)?;
16
17 let opts = CleanOptions {
18 gctx: &gctx,
19 spec: vec![],
20 targets: vec![],
21 profile_specified: false,
22 requested_profile: InternedString::new("dev"),
23 doc: cli.doc,
24 dry_run: cli.dry_run,
25 };
26
27 clean(&workspace, &opts)
28}