2019-09-03 10:37:49 +00:00
|
|
|
extern crate flate2;
|
|
|
|
extern crate tar;
|
|
|
|
|
|
|
|
use std::fs::File;
|
|
|
|
|
|
|
|
use reqwest::Client;
|
|
|
|
use reqwest::header::ETAG;
|
|
|
|
|
|
|
|
fn main() -> Result<(), std::io::Error> {
|
|
|
|
let client = Client::new();
|
|
|
|
|
2019-09-03 15:23:13 +00:00
|
|
|
let args: Vec<_> = std::env::args().collect();
|
|
|
|
if args.len() < 2 {
|
|
|
|
println!("Please enter a package name...");
|
|
|
|
}
|
|
|
|
|
|
|
|
let split = args[1].as_str().split("::");
|
|
|
|
let vec: Vec<&str> = split.collect();
|
|
|
|
let mut resp = client.get(vec[0])
|
2019-09-03 10:37:49 +00:00
|
|
|
.send().expect("Failed to make request");
|
|
|
|
|
|
|
|
if resp.status().is_success() {
|
|
|
|
if let Some(etag) = resp.headers().get(ETAG) {
|
|
|
|
std::fs::write("etag", etag.as_bytes()).expect("Failed to write ETAG...");
|
|
|
|
}
|
|
|
|
|
2019-09-03 15:23:13 +00:00
|
|
|
let mut file = match File::create(format!("/imperfect/repo/{}/tarballs/bash.pkg.tar.xz", vec[1])) {
|
|
|
|
Ok(res) => res,
|
|
|
|
Err(_) => {
|
|
|
|
println!("Failed to create file...did you setup arch? Do you have permission to create files?");
|
|
|
|
std::process::exit(1);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2019-09-03 10:37:49 +00:00
|
|
|
resp.copy_to(&mut file).expect("failed to write file");
|
|
|
|
}
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
}
|