diff options
Diffstat (limited to 'xtask')
-rw-r--r-- | xtask/src/flags.rs | 5 | ||||
-rw-r--r-- | xtask/src/main.rs | 2 | ||||
-rw-r--r-- | xtask/src/pre_cache.rs | 79 |
3 files changed, 0 insertions, 86 deletions
diff --git a/xtask/src/flags.rs b/xtask/src/flags.rs index 4cd2b1ddb..34e447c2f 100644 --- a/xtask/src/flags.rs +++ b/xtask/src/flags.rs | |||
@@ -28,7 +28,6 @@ xflags::xflags! { | |||
28 | } | 28 | } |
29 | 29 | ||
30 | cmd fuzz-tests {} | 30 | cmd fuzz-tests {} |
31 | cmd pre-cache {} | ||
32 | 31 | ||
33 | cmd release { | 32 | cmd release { |
34 | optional --dry-run | 33 | optional --dry-run |
@@ -63,7 +62,6 @@ pub enum XtaskCmd { | |||
63 | Help(Help), | 62 | Help(Help), |
64 | Install(Install), | 63 | Install(Install), |
65 | FuzzTests(FuzzTests), | 64 | FuzzTests(FuzzTests), |
66 | PreCache(PreCache), | ||
67 | Release(Release), | 65 | Release(Release), |
68 | Promote(Promote), | 66 | Promote(Promote), |
69 | Dist(Dist), | 67 | Dist(Dist), |
@@ -92,9 +90,6 @@ pub struct Lint; | |||
92 | pub struct FuzzTests; | 90 | pub struct FuzzTests; |
93 | 91 | ||
94 | #[derive(Debug)] | 92 | #[derive(Debug)] |
95 | pub struct PreCache; | ||
96 | |||
97 | #[derive(Debug)] | ||
98 | pub struct Release { | 93 | pub struct Release { |
99 | pub dry_run: bool, | 94 | pub dry_run: bool, |
100 | } | 95 | } |
diff --git a/xtask/src/main.rs b/xtask/src/main.rs index 960927fc0..0dbbde275 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs | |||
@@ -18,7 +18,6 @@ mod install; | |||
18 | mod release; | 18 | mod release; |
19 | mod dist; | 19 | mod dist; |
20 | mod metrics; | 20 | mod metrics; |
21 | mod pre_cache; | ||
22 | 21 | ||
23 | use anyhow::{bail, Result}; | 22 | use anyhow::{bail, Result}; |
24 | use std::{ | 23 | use std::{ |
@@ -41,7 +40,6 @@ fn main() -> Result<()> { | |||
41 | } | 40 | } |
42 | flags::XtaskCmd::Install(cmd) => cmd.run(), | 41 | flags::XtaskCmd::Install(cmd) => cmd.run(), |
43 | flags::XtaskCmd::FuzzTests(_) => run_fuzzer(), | 42 | flags::XtaskCmd::FuzzTests(_) => run_fuzzer(), |
44 | flags::XtaskCmd::PreCache(cmd) => cmd.run(), | ||
45 | flags::XtaskCmd::Release(cmd) => cmd.run(), | 43 | flags::XtaskCmd::Release(cmd) => cmd.run(), |
46 | flags::XtaskCmd::Promote(cmd) => cmd.run(), | 44 | flags::XtaskCmd::Promote(cmd) => cmd.run(), |
47 | flags::XtaskCmd::Dist(flags) => { | 45 | flags::XtaskCmd::Dist(flags) => { |
diff --git a/xtask/src/pre_cache.rs b/xtask/src/pre_cache.rs deleted file mode 100644 index b456224fd..000000000 --- a/xtask/src/pre_cache.rs +++ /dev/null | |||
@@ -1,79 +0,0 @@ | |||
1 | use std::{ | ||
2 | fs::FileType, | ||
3 | path::{Path, PathBuf}, | ||
4 | }; | ||
5 | |||
6 | use anyhow::Result; | ||
7 | use xshell::rm_rf; | ||
8 | |||
9 | use crate::flags; | ||
10 | |||
11 | impl flags::PreCache { | ||
12 | /// Cleans the `./target` dir after the build such that only | ||
13 | /// dependencies are cached on CI. | ||
14 | pub(crate) fn run(self) -> Result<()> { | ||
15 | let slow_tests_cookie = Path::new("./target/.slow_tests_cookie"); | ||
16 | if !slow_tests_cookie.exists() { | ||
17 | panic!("slow tests were skipped on CI!") | ||
18 | } | ||
19 | rm_rf(slow_tests_cookie)?; | ||
20 | |||
21 | for path in read_dir("./target/debug", FileType::is_file)? { | ||
22 | // Can't delete yourself on windows :-( | ||
23 | if !path.ends_with("xtask.exe") { | ||
24 | rm_rf(&path)? | ||
25 | } | ||
26 | } | ||
27 | |||
28 | rm_rf("./target/.rustc_info.json")?; | ||
29 | |||
30 | let to_delete = read_dir("./crates", FileType::is_dir)? | ||
31 | .into_iter() | ||
32 | .map(|path| path.file_name().unwrap().to_string_lossy().replace('-', "_")) | ||
33 | .collect::<Vec<_>>(); | ||
34 | |||
35 | for &dir in ["./target/debug/deps", "target/debug/.fingerprint"].iter() { | ||
36 | for path in read_dir(dir, |_file_type| true)? { | ||
37 | if path.ends_with("xtask.exe") { | ||
38 | continue; | ||
39 | } | ||
40 | let file_name = path.file_name().unwrap().to_string_lossy(); | ||
41 | let (stem, _) = match rsplit_once(&file_name, '-') { | ||
42 | Some(it) => it, | ||
43 | None => { | ||
44 | rm_rf(path)?; | ||
45 | continue; | ||
46 | } | ||
47 | }; | ||
48 | let stem = stem.replace('-', "_"); | ||
49 | if to_delete.contains(&stem) { | ||
50 | rm_rf(path)?; | ||
51 | } | ||
52 | } | ||
53 | } | ||
54 | |||
55 | Ok(()) | ||
56 | } | ||
57 | } | ||
58 | fn read_dir(path: impl AsRef<Path>, cond: impl Fn(&FileType) -> bool) -> Result<Vec<PathBuf>> { | ||
59 | read_dir_impl(path.as_ref(), &cond) | ||
60 | } | ||
61 | |||
62 | fn read_dir_impl(path: &Path, cond: &dyn Fn(&FileType) -> bool) -> Result<Vec<PathBuf>> { | ||
63 | let mut res = Vec::new(); | ||
64 | for entry in path.read_dir()? { | ||
65 | let entry = entry?; | ||
66 | let file_type = entry.file_type()?; | ||
67 | if cond(&file_type) { | ||
68 | res.push(entry.path()) | ||
69 | } | ||
70 | } | ||
71 | Ok(res) | ||
72 | } | ||
73 | |||
74 | fn rsplit_once(haystack: &str, delim: char) -> Option<(&str, &str)> { | ||
75 | let mut split = haystack.rsplitn(2, delim); | ||
76 | let suffix = split.next()?; | ||
77 | let prefix = split.next()?; | ||
78 | Some((prefix, suffix)) | ||
79 | } | ||