cargo clippy dev: fix extraction of downloaded crates
This commit is contained in:
parent
63176834c2
commit
e69147486e
1 changed files with 19 additions and 15 deletions
|
@ -34,28 +34,30 @@ impl KrateSource {
|
||||||
self.name, self.version
|
self.name, self.version
|
||||||
);
|
);
|
||||||
println!("Downloading {}, {} / {}", self.name, self.version, url);
|
println!("Downloading {}, {} / {}", self.name, self.version, url);
|
||||||
std::fs::create_dir("target/crater/").unwrap();
|
let _ = std::fs::create_dir("target/crater/");
|
||||||
|
|
||||||
std::fs::create_dir(&krate_download_dir).unwrap();
|
let _ = std::fs::create_dir(&krate_download_dir);
|
||||||
std::fs::create_dir(&extract_dir).unwrap();
|
let _ = std::fs::create_dir(&extract_dir);
|
||||||
|
|
||||||
let krate_name = format!("{}-{}.crate.tar.gz", &self.name, &self.version);
|
let krate_name = format!("{}-{}.crate.tar.gz", &self.name, &self.version);
|
||||||
let mut krate_dest = std::fs::File::create(krate_download_dir.join(krate_name)).unwrap();
|
let krate_file_path = krate_download_dir.join(krate_name);
|
||||||
|
let mut krate_dest = std::fs::File::create(&krate_file_path).unwrap();
|
||||||
let mut krate_req = ureq::get(&url).call().unwrap().into_reader();
|
let mut krate_req = ureq::get(&url).call().unwrap().into_reader();
|
||||||
std::io::copy(&mut krate_req, &mut krate_dest).unwrap();
|
std::io::copy(&mut krate_req, &mut krate_dest).unwrap();
|
||||||
let krate = krate_dest;
|
// unzip the tarball
|
||||||
dbg!(&krate);
|
let dl = std::fs::File::open(krate_file_path).unwrap();
|
||||||
let tar = flate2::read::GzDecoder::new(&krate);
|
|
||||||
let mut archiv = tar::Archive::new(tar);
|
let ungz_tar = flate2::read::GzDecoder::new(dl);
|
||||||
let extracted_path = extract_dir.join(format!("{}-{}", self.name, self.version));
|
// extract the tar archive
|
||||||
// println!("ar: p: {:?}", &krate, extracted_path);
|
let mut archiv = tar::Archive::new(ungz_tar);
|
||||||
archiv.unpack(&extracted_path).expect("Failed to extract!");
|
let extract_path = extract_dir.join(format!("{}-{}/", self.name, self.version));
|
||||||
// extract
|
archiv.unpack(&extract_path).expect("Failed to extract!");
|
||||||
|
// extracted
|
||||||
|
|
||||||
Krate {
|
Krate {
|
||||||
version: self.version.clone(),
|
version: self.version.clone(),
|
||||||
name: self.name.clone(),
|
name: self.name.clone(),
|
||||||
path: extracted_path,
|
path: extract_path,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -88,11 +90,13 @@ pub fn run() {
|
||||||
// assert that clippy is found
|
// assert that clippy is found
|
||||||
assert!(
|
assert!(
|
||||||
cargo_clippy_path.is_file(),
|
cargo_clippy_path.is_file(),
|
||||||
"target/debug/cargo-clippy binary not found! {}", cargo_clippy_path.display()
|
"target/debug/cargo-clippy binary not found! {}",
|
||||||
|
cargo_clippy_path.display()
|
||||||
);
|
);
|
||||||
assert!(
|
assert!(
|
||||||
clippy_driver_path.is_file(),
|
clippy_driver_path.is_file(),
|
||||||
"target/debug/clippy-driver binary not found! {}", clippy_driver_path.display()
|
"target/debug/clippy-driver binary not found! {}",
|
||||||
|
clippy_driver_path.display()
|
||||||
);
|
);
|
||||||
|
|
||||||
// download and extract the crates, then run clippy on them and collect clippys warnings
|
// download and extract the crates, then run clippy on them and collect clippys warnings
|
||||||
|
|
Loading…
Reference in a new issue