summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKornel <kornel@geekhood.net>2019-09-01 01:53:40 +0100
committerKornel <kornel@geekhood.net>2019-09-01 01:53:40 +0100
commit3df56f7262c7d2618252bee2b3dc2401a48f6e22 (patch)
treef01ab3ec43bf02c1a343e015fe476ccad7a4dc54
parent31956c69ba47674a34f3f08df9b8fafd3cacbae6 (diff)
Filter
-rw-r--r--builder/src/main.rs22
1 files changed, 12 insertions, 10 deletions
diff --git a/builder/src/main.rs b/builder/src/main.rs
index fa1578d..d5cd995 100644
--- a/builder/src/main.rs
+++ b/builder/src/main.rs
@@ -16,10 +16,17 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let docker_root = crates.main_cache_dir().join("docker");
prepare_docker(&docker_root)?;
+ let filter = std::env::args().skip(1).next();
+
for (_, all) in crates.all_crates_io_crates() {
if stopped() {
break;
}
+ if let Some(f) = &filter {
+ if !all.name().contains(f) {
+ continue;
+ }
+ }
if let Err(e) = analyze_crate(&all, &db, &crates, &docker_root) {
eprintln!("•• {}: {}", all.name(), e);
continue;
@@ -32,21 +39,16 @@ fn analyze_crate(all: &CratesIndexCrate, db: &BuildDb, crates: &KitchenSink, doc
let ref origin = Origin::from_crates_io_name(all.name());
let compat_info = db.get_compat(origin)?;
- if !compat_info.is_empty() {
+ if compat_info.iter().any(|c| c.crate_version == "1.24.1") {
println!("{} got it {:?}", all.name(), compat_info);
return Ok(());
}
let ver = all.latest_version();
- let res = db.get_raw_build_info(origin, ver.version())?;
- let builds = match res {
- Some(res) => res,
- None => {
- let (stdout, stderr) = do_builds(&crates, &all, &docker_root)?;
- db.set_raw_build_info(origin, ver.version(), &stdout, &stderr)?;
- (stdout, stderr)
- },
- };
+
+ let (stdout, stderr) = do_builds(&crates, &all, &docker_root)?;
+ db.set_raw_build_info(origin, ver.version(), &stdout, &stderr)?;
+
for f in parse_analyses(&builds.0, &builds.1) {
println!("{:#?}", f);
if let Some(rustc_version) = f.rustc_version {